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了。

  • 相关阅读:
    莫队专题
    AJAX XML 实例
    AJAX 简介
    AJAX 服务器响应
    AJAX 创建XMLHttpRequest 对象
    AJAX 教程
    AJAX 向服务器发送请求
    AJAX onreadystatechange 事件
    AJAX ASP/PHP 请求实例
    让卖场的死角“起死回生”
  • 原文地址:https://www.cnblogs.com/yoghurt/p/5837353.html
Copyright © 2011-2022 走看看