已解决DataNode 无法正常启动解决方案

Posted share23

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已解决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无法使用,上传文件失败

  防火墙没有关闭,查看本机防火墙,如果没关闭则关闭

 


 



以上是关于已解决DataNode 无法正常启动解决方案的主要内容,如果未能解决你的问题,请参考以下文章

无法启动Hadoop datanode。返回值:1

重新format namenode后,datanode无法正常启动

重新格式化hadoop的namenode导致datanode无法启动的最简单解决办法

hadoop集群之Datenode无法启动解决办法

hadoop datanode无法启动

应用程序无法正常启动(0x000007b)或者找不到dll文件(以vcruntime140d.dll为例)的原因原理分析和解决方法(亲测已解决)