zoukankan      html  css  js  c++  java
  • datanode启动不起来的各种原因

    一般在数据节点的log日志信息里能找到导致启动不起来的原因。

    1.Namenode和Datanode的NamenodeID不一致

        描述:一般在集群多次重新格式化HDFS之后,或者刚安装时会碰到。日志信息如下:

      java.io.IOException: Incompatible namespaceIDs in /root/tmp/dfs/data:

      NameNode namespaceID = 1307672299; DataNode namespaceID = 389959598

    解决办法:最直接有效的办法就是修改Datanode上的namenodeID(位于/dfs/data/current/VERSION文件中)或修改NameNode的namespaceID(位于/dfs/name/current/VERSION文件中),使其一致。

    2.Datanode突然不堪重负宕掉

      只需重启坏掉的Datanode或者JobTracker。当集群中的某单个节点出现问题,不必重新重启整个系统,只需重启这个节点,然后会自动连接到整个集群里。

      在坏死的节点上输入以下命令:

        bin/Hadoop-daemon.sh start DataNode

        bin/Hadoop-daemon.sh start jobtracker

    以上方法也可以用于动态加入datanode,允许用户动态将某个节点加入集群中。

        在hadoop集群中,HDFS分布式文件系统和mapreduce计算框架是可以独立部署安装的,在hadoop2中体现很明显,如果只需要使用部分节点进行计算,只需要单独启动resourcemanager和需要使用的结点上的nodemanager即可,查找命令可以参考/hadoop2/sbin/start-yarn.sh中是如何写的就可以找到答案了! 在hadoop2/sbin/start-yarn.sh脚本中,写了启动resourcemanager和所有节点上的nodemanager,所以只需要参考该脚本文件,就能得到启动单个节点上的nodemanager的方法:

        hadoop2/sbin/hadoop-daemon.sh startdatanode

        hadoop2/sbin/yarn-daemon.sh nodemanager

    然后执行下集群HDFS的负载均衡即可完成动态添加节点了!

      在hadoop1中

        bin/Hadoop-daemon.sh --config ./conf start DataNode

        bin/Hadoop-daemon.sh --config ./conf start tasktracker


     

  • 相关阅读:
    linux环境下MongoDB的部署及应用
    Memcache,Redis,MongoDB三种非关系型数据库的对比
    什么是事务
    umount卸载目录的时候,提示正忙
    Maven私服Nexus3.x环境部署应用
    执行yum提示error: rpmdb: BDB0113 Thread/process 9060/139773561796608 failed: BDB1507 Thread died in Berkeley DB library
    vim 常用
    nginx的部署和配置
    linux系统异常关机导致报文件系统只读Read-only file system的解决方法
    js拖拽
  • 原文地址:https://www.cnblogs.com/kxdblog/p/4034255.html
Copyright © 2011-2022 走看看