块池<registering>的初始化失败(Datanode Uuid未分配)

Mon*_*lal 6 java uuid hadoop disk hdfs

这个错误的来源是什么?如何修复?

2015-11-29 19:40:04,670 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to anmol-vm1-new/10.0.1.190:8020. Exiting.
java.io.IOException: All specified directories are not accessible or do not exist.
        at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:217)
        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)
2015-11-29 19:40:04,670 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool <registering> (Datanode Uuid unassigned) service to anmol-vm1-new/10.0.1.190:8020
2015-11-29 19:40:04,771 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool <registering> (Datanode Uuid unassigned)
Run Code Online (Sandbox Code Playgroud)

rht*_*sjz 5

我遇到了同样的问题并通过执行以下步骤解决了它:

步骤 1.删除hdfs目录(对我来说它是默认目录“ /tmp/hadoop-root/”)

rm -rf /tmp/hadoop-root/*
Run Code Online (Sandbox Code Playgroud)

步骤 2.运行

bin/hdfs namenode -format
Run Code Online (Sandbox Code Playgroud)

格式化目录


Muh*_*man 5

有两种可能的解决方案可以解决

第一:

您的namenode和datanode群集ID不匹配,请确保它们相同.

在名称节点中,更改位于以下位置的文件中的ur cluster id:

$ nano HADOOP_FILE_SYSTEM/namenode/current/VERSION 
Run Code Online (Sandbox Code Playgroud)

在数据节点中,您的群集ID存储在文件中:

$ nano HADOOP_FILE_SYSTEM/datanode/current/VERSION
Run Code Online (Sandbox Code Playgroud)

第二:

格式化namenode:

Hadoop 1.x: $ hadoop namenode -format

Hadoop 2.x: $ hdfs namenode -format
Run Code Online (Sandbox Code Playgroud)