zoukankan      html  css  js  c++  java
  • 【爬坑】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无法使用,上传文件失败

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


    且将新火试新茶,诗酒趁年华。
  • 相关阅读:
    [置顶] 算法设计基础
    .net 多线程学习
    如何获得Repeater中的列
    npoi导出excel
    字符串的格式化问题
    用线程修改页面中的值(一)
    正则表达式的验证数值验证
    .net 线程更新页面中的值(方法二)
    .net 线程更新页面中的值(方法一)
    字符串的分割
  • 原文地址:https://www.cnblogs.com/share23/p/9703588.html
Copyright © 2011-2022 走看看