一 问题的产生:
出现该问题的原因:
1.在格式化dfs后,非正常启动hadoop;
2 非正常关闭集群
hdfs格式化命令(hdfs namenode -format)时,这时namenode的clusterID会重新生成,而datanode的clusterID 保持不变。
当slave中没有DataNode进程原因如下
1.可能是master中没有开启hadoop集群
sbin/start-all.sh
2 若启动集群后slave仍未有DataNode则在slave中单步启动命令如下;
sbin/hadoop-daemons.sh start datanode
3 若还是没有DataNode进程,则查看DataNode日志:命令如下:
首先进入logs日志目录 cd /home/zkpk/hadoop-2.5.2/logs
查看目录文件 ll -l
打开Datanode日志
less hadoop-zkpk-datanode-slave1.log
若出现如图所示错误:
二 解决办法:
分别进入master和slave :VERSTON文件中
cd /home/zkpk/hadoopdata/dfs/name/current
vim VERSTON --->clusterID
slave:
cd /home/zkpk/hadoopdata/dfs/data/current
vim VERSTON -->clusterID
两个文件的clusterID保持一致即是master考到slaveclusterID
三 在slave中单步启动DataNode
sbin/hadoop-daemons.sh start datanode
注释:
为避免master(4个) slave(3个)的进程没有启动完整,所以在关闭虚拟机之前一定先关闭hadoop集群
命令如
进入hadoop-2.5.2目录
cd /home/zkpk/hadop-2.5.2
详情参见:http://www.linuxidc.com/Linux/2014-11/108822.htm