`
xiaoqing2305
  • 浏览: 12962 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

hadoop2.6 伪分布式 datanode无法启动

阅读更多

hadoop2.6集群启动后,用 jps 命令查看进程,发现没有 datanode 进程,查看datanode日志,日志中报错部分内容如下:

2015-08-08 15:12:02,952 INFO org.apache.hadoop.hdfs.server.common.Storage: DataNode version: -56 and NameNode layout version: -60
2015-08-08 15:12:03,066 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /usr/local/hadoop/dfs/data/in_use.lock acquired by nodename 5321@bogon
2015-08-08 15:12:03,070 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to localhost/127.0.0.1:9000. Exiting.
java.io.IOException: Incompatible clusterIDs in /usr/local/hadoop/dfs/data: namenode clusterID = CID-cada1f81-b713-45fc-8839-a8a7c7a1b107; datanode clusterID = CID-19fa414d-50ea-494b-9a14-898b9b801e96
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:646)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.addStorageLocations(DataStorage.java:320)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:403)
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:422)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1311)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1276)
        at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:314)
        at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:220)
        at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:828)
        at java.lang.Thread.run(Thread.java:745)
2015-08-08 15:12:03,087 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool <registering> (Datanode Uuid unassigned) service to localhost/127.0.0.1:9000
2015-08-08 15:12:03,089 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool <registering> (Datanode Uuid unassigned)

 

错误原因:

datanode的clusterID 和 namenode的 clusterID 不匹配。

 

解决办法:

根据 hdfs-site.xml 中的配置:
1、 打开 dfs.namenode.name.dir 配置对应目录下的 current 目录下的 VERSION 文件,拷贝clusterID;
2、 打开 dfs.datanode.data.dir 配置对应目录下的 current 目录下的 VERSION 文件,用拷贝的 clusterID 覆盖原有的clusterID;
3、 保存后重新启动 hadoop,datanode 进程就能正常启动了。

 

出现此文提的原因: 网上很多帖子说由于重新执行了格式化命令(hdfs namenode -format),namenode 的 clusterID 重新生成了,而 datanode 的 clusterID 没有改变。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics