zoukankan      html  css  js  c++  java
  • 解决集群搭建找不到datanode的问题

    解决"no datanode to stop"问题
    当我停止Hadoop时发现如下信息:
        no datanode to stop
    原因:每次namenode format会重新创建一个namenodeId,而tmp/dfs/data下包含了上次format下的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,有两种解决方案:
    第一种解决方案如下:
    1)先删除"/usr/hadoop/tmp"
    rm -rf /usr/hadoop/tmp
    2)创建"/usr/hadoop/tmp"文件夹
    mkdir /usr/hadoop/tmp
    3)删除"/tmp"下以"hadoop"开头文件
    rm -rf /tmp/hadoop*
    4)重新格式化hadoop 
    hadoop namenode -format
    5)启动hadoop
    start-all.sh
    使用第一种方案,有种不好处就是原来集群上的重要数据全没有了。假如说Hadoop集群已经运行了一段时间。
    建议采用第二种。
    第二种方案如下:
    1)修改每个Slave的clusterID使其与Master的clusterID一致。
       或者
    2)修改Master的clusterID使其与Slave的clusterID一致。
    该"namespaceID"位于"/home/zkpk/hadoopdata/dfs/name/current/VERSION"文件中,前面蓝色的可能根据实际情况变化,但后面红色一般是不变的。
    例如:查看"Master"下的"VERSION"文件
     
    本人建议采用第二种,这样方便快捷,而且还能防止误删。
    总结一下,其实找不到datanode的原因可能往往是因为自己搭建集群的时候格式化多次了,当然不排除机子突然抽风了,本来集群搭建第一次格式化时namenode生成一个clusterID,并且复制给子节点了,当再次不小心格式化的时候导致namenode和datanode的clusterID不一样了,所以才会出现start-all.sh的时候找不到datanode了。

  • 相关阅读:
    Codeblocks的常用Debug快捷键
    大整数乘法(POJ2389)
    简单深搜
    Windows安装时的几个命令(摘录)
    模拟栈的回溯,完全二叉树搜索,(ZOJ1004)
    生理周期,POJ(1006)
    next_permutation,POJ(1256)
    计算次数,POJ(1207)
    模拟,找次品硬币,Counterfeit Dollar(POJ 1013)
    深搜(DFS),Image Perimeters
  • 原文地址:https://www.cnblogs.com/yoghurt/p/5837353.html
Copyright © 2011-2022 走看看