【爬坑】DataNode 无法正常启动解决方案
0. 说明
DataNode 无法正常启动的原因 & 解决方案
1. 原因一
在 start-all.sh 之后 DataNode 无法正常启动,单独启动也启动不了
可能的原因
多次格式化,导致 NameNode 和 DataNode 的集群 id 不匹配 DataNode 无法启动
验证
查看对应主机的相关日志信息,位置在 /soft/hadoop/logs
查看 hadoop-centos-datanode-s101.log 文件
java.io.IOException: Incompatible clusterIDs in /tmp/hadoop-centos/dfs/data: namenode clusterID = CID-297a82ef-d68f-49c8-a9d0-d7640a901b2c; datanode clusterID = CID-e5778e8c-dfbd-4630-9f46-45d2057aeec8
解决方案
在配置的时候在 core-site.xml 设置 hadoop.tmp.dir 参数。
如果不设置,其默认为 /tmp/hadoop-${user.name}
这里为默认设置结合主机名为 /tmp/hadoop-centos
解决代码
rm -rf /tmp/hadoop-centos
这里是伪分布式安装,如果是分布式安装的话通过 SSH 远程登陆删除配置的 DataNode 节点的 core-site.xml 设置 hadoop.tmp.dir 参数
如:
ssh s102 "rm -rf /home/centos/hadoop"
启动
hadoop-daemons.sh start datanode
2. 原因二
可能的原因
没有格式化文件系统,导致 NameNode 无法正常启动
验证
查看对应主机的相关日志信息,位置在 /soft/hadoop/logs
查看 hadoop-centos-namenode-s101.log 文件
以下说明 NameNode 的工作目录不存在或者无法访问
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:
Directory /home/centos/hadoop/dfs/name is in an inconsistent state:
storage directory does not exist or is not accessible.
解决方案
格式化文件系统,再出现错误参考原因一。
hdfs namenode -format
3. 原因三
可能的原因
进程正常启动,datanode无法使用
本机联通s101出现问题
验证
查看对应主机的相关日志信息,位置在/soft/hadoop/logs
查看 hadoop-centos-namenode-s101.log 文件
以下说明本机联通 s101 出现问题,将主机名 s101 解析为211.98.71.195
2018-07-21 22:49:33,960 INFO org.apache.hadoop.ipc.Client: Retrying connect to server: s101/211.98.71.195:8020. Already tried 1 time(s); maxRetries=45
解决方案
修改 hosts 文件
sudo vi /etc/hosts
重启 Hadoop
进程正常启动,DataNode无法使用,上传文件失败
防火墙没有关闭,查看本机防火墙,如果没关闭则关闭