hadoop中同台机器datanode和namenode互相冲突解决

如果我们想让一台机器即是datanode也是namenode,一般就是执行一下两条:

hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode

但是我们执行完毕后我们多次执行jps命令,会发现datanode持续能有10秒左右,然后就消失了。

这个原因是因为我们namenode格式化了好几次,clusterID号码出现了变化。

第一种解决的方法是:

进入hadoop安装目录(如/root/hadoop-2.8.1)下面的/etc/hadoop下,如:

cd /root/hadoop-2.8.1/etc/hadoop
之后
 cat hdfs-site.xml

看看我们的存储系统在哪个文件夹下,如:

<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/dfs/name</value>
</property>

<property>
<name>dfs.datanode.data.dir</name>
<value>/root/dfs/data</value>
</property>

</configuration>

这说明我们的文件夹是:/root/dfs/name、/root/dfs/data 这两个

然后我们进入name文件夹里面的current中

cd /root/dfs/name/current

查看version文件

cat VERSION
#Sun May 06 17:29:02 CST 2018
namespaceID=1716704703
clusterID=CID-d2aba48a-2c35-4c0b-8f2f-1147e741e262
cTime=1525562408320
storageType=NAME_NODE
blockpoolID=BP-837005319-192.168.2.11-1525562408320

layoutVersion=-63

复制红色的这条,然后进入data文件夹里面的current中,并查看version文件

cd /root/dfs/data/current
vi VERSION

把version里面的clusterID变成刚才复制的那条。

然后重新执行:

hadoop-daemon.sh start namenode
hadoop-daemon.sh start datanode
或者

start-dfs.sh 
之后就可以使用了


猜你喜欢

转载自blog.csdn.net/u013631121/article/details/80213506