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

时间:2015-11-29 19:48:09

标签: java hadoop hdfs uuid disk

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

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)

7 个答案:

答案 0 :(得分:5)

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

<强>首先

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

在名称节点中,更改位于以下位置的文件中的群集ID:

$ nano HADOOP_FILE_SYSTEM/datanode/current/VERSION

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

Hadoop 1.x: $ hadoop namenode -format

Hadoop 2.x: $ hdfs namenode -format

第二名:

完全格式化namenode:

use Cake\Routing\Router; 

答案 1 :(得分:3)

我遇到了同样的问题并通过以下步骤解决了这个问题:

第1步。删除hdfs目录(对我而言,这是默认目录“/tmp/hadoop-root/”)

rm -rf /tmp/hadoop-root/*

第2步。运行

bin/hdfs namenode -format

格式化目录

答案 2 :(得分:1)

这个的根本原因是datanode和namenode clusterID不同,请用namenode clusterID统一它们然后重新启动hadoop然后它应该被解析。

答案 3 :(得分:1)

问题出现是因为群集ID与datanode和namenode不匹配。

请按照以下步骤操作:

  1. 转到Hadoop_home / data / namenode / CURRENT并从&#34; VERSION&#34;中复制群集ID。
  2. 转到Hadoop_home / data / datanode / CURRENT并将此群集ID粘贴到&#34; VERSION&#34;取代那里的人。
  3. 然后格式化namenode
  4. 再次启动datanode和namenode。

答案 4 :(得分:0)

问题出现是因为群集ID与datanode和namenode不匹配。

请按照以下步骤操作:

  

1-转到Hadoop_home /删除文件夹数据

     

2-创建具有anthor名称data123的文件夹

     

3-创建两个文件夹namenode和datanode

     

4 - 转到hdfs-site并经过你的路径

 <name>dfs.namenode.name.dir</name>
<value>........../data123/namenode</value>

    <name>dfs.datanode.data.dir</name>
<value>............../data123/datanode</value>

答案 5 :(得分:0)

有一些存储I / O错误时,可能会出现此问题。在这种情况下,VERSION文件不可用,因此显示为上述错误。 您可能需要排除hdfs-site.xml中那些损坏的驱动器上的存储位置。

答案 6 :(得分:0)

对我来说,这很有效-

  1. 删除(或备份)HADOOP_FILE_SYSTEM / namenode /当前目录
  2. 重新启动datanode服务

这应该再次创建当前目录,并在VERSION文件中使用正确的clusterID

来源-https://community.pivotal.io/s/article/Cluster-Id-is-incompatible-error-reported-when-starting-datanode-service?language=en_US