DataNode没有启动的缘由

   问题描述:今天在master节点上启动HDFS,经过JPS查看NameNode,SecondaryNameNode等都正常启动,在slave节点上查看没有DataNode节点,经过http://localhost:50070查看没有DataNode节点.java

    分析缘由:不管是NameNode、DataNode,在启动时都会在$HADOOP_HOME/logs下建立一份日志,而且将启动的过程、异常错误等都会进行记录,打开DataNode节点上产生的log,果真发现出现错误,错误以下:node

   

2015-05-30 19:04:10,948 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to hadoop.master/192.168.1.200:9000. Exiting.
java.io.IOException: Incompatible clusterIDs in /root/app/hadoop/tmp/dfs/data: namenode clusterID = CID-aee19086-0039-4a5c-a7de-cb5f4355262c; datanode clusterID = CID-8fab07df-65df-48a0-862c-b3489783618d
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:477)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:226)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:254)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:974)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:945)
        at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:278)
        at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:220)
        at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:816)
        at java.lang.Thread.run(Thread.java:745)

主要错误看:apache

mp/dfs/data: namenode clusterID = CID-aee19086-0039-4a5c-a7de-cb5f4355262c; datanode clusterID = CID-8fab07df-65df-48a0-862c-b3489783618d
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:477)

DataNode clusterID与NameNode clusterID 不一致app

解决方法:oop

一、经过查看NameNode的clusterID:$HADOOP_HOME/tmp/dfs/name/current/VERSION,对比DataNode CID是否不一致
ui

二、若是不一致则将DataNode节点上的tmp文件删除,而后从新经过sbin/hadoop-daemon.sh datanode start启动DataNode.,如何配置无误,NameNode会从新在DataNode上创建tmp文件而且归入集群中,此处产生两种状况:spa

    2.一、生产中出现新增从节点,经过复制主节点的配置环境,而后直接删除tmp便可加入集群日志

    2.二、生产中出现子节点挂了,切记不能直接去hadoop namenode -format(有同窗当初由于这个问题差点就干了),直接将挂了的子节点替换或者从新启动,此时须要将tmp文件删除,有些同窗顾虑删除子节点的tmp文件会致使文件损坏或者找不到,这个不要紧,由于数据有多个备份,因此无需担忧
code

相关文章
相关标签/搜索