解决重新格式化HDFS文件系统后,导致NN和DN上的HDFS版本不一致问题。
脚本思路:
NN节点上格式化HDFS,然后将新生成的VERSION替换DN上的VERSION.
脚本:
#!/bin/bash
HADOOP_HOME="/home/hadoop"
/home/hadoop/hadoop/bin/hadoop namenode -format
namespaceid=`cat $HADOOP_HOME/hadoop-datastore/hadoop-hadoop/dfs/name/current/VERSION |grep namespaceID|awk -F = '{print $2}'`
for i in `cat /home/hadoop/hadoop/conf/slaves`
do
ssh $i "sed -i 's/namespaceID=.*/namespaceID=${namespaceid}/g' /home/hadoop/hadoop-datastore/hadoop-hadoop/dfs/data/current/VERSION
"
done