块池的初始化失败(datanode uuid未分配)

rnmwe5a2  于 2021-06-02  发布在  Hadoop
关注(0)|答案(7)|浏览(541)

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

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)
gudnpqoy

gudnpqoy1#

当存在某些存储i/o错误时,可能会发生此问题。在这种情况下,版本文件不可用,因此出现上述错误。您可能需要排除中那些坏驱动器上的存储位置 hdfs-site.xml .

rm5edbpk

rm5edbpk2#

造成这种情况的根本原因是datanode和namenode clusterid不同,请用namenode clusterid将它们统一起来,然后重新启动hadoop,应该会得到解决。

nxowjjhe

nxowjjhe3#

出现此问题的原因是datanode和namenode的集群id不匹配。
遵循以下步骤:
1-转到hadoop\u主页/删除文件夹数据
2-创建名为data123的文件夹
3-创建两个文件夹namenode和datanode
4-进入hdfs站点并通过您的路径

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

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

.

axr492tv

axr492tv4#

出现此问题的原因是datanode和namenode的集群id不匹配。
遵循以下步骤:
转到hadoop\u home/data/namenode/current并从“version”复制集群id。
转到hadoop\u home/data/datanode/current并将这个集群id粘贴到“version”中,替换那里的集群id。
然后格式化namenode
再次启动datanode和namenode。

kxkpmulp

kxkpmulp5#

我遇到了同样的问题,并通过以下步骤解决了它:
第一步。拆下 hdfs 目录(对我来说是默认目录) /tmp/hadoop-root/ ")

rm -rf /tmp/hadoop-root/*

第二步。跑

bin/hdfs namenode -format

格式化目录

gmxoilav

gmxoilav6#

有两种可能的解决方案
第一:
您的namenode和datanode集群id不匹配,请确保它们相同。
在名称节点中,更改位于以下位置的文件中的ur群集id:

$ nano HADOOP_FILE_SYSTEM/namenode/current/VERSION

在数据节点中,群集id存储在文件中:

$ nano HADOOP_FILE_SYSTEM/datanode/current/VERSION

第二:
设置namenode的格式:

Hadoop 1.x: $ hadoop namenode -format

Hadoop 2.x: $ hdfs namenode -format
4sup72z8

4sup72z87#

对我来说,这很管用-
删除(或备份)hadoop\u文件\u system/namenode/current目录
重新启动datanode服务
这将使用版本文件中的正确clusterid再次创建当前目录
来源-https://community.pivotal.io/s/article/cluster-id-is-incompatible-error-reported-when-starting-datanode-service?language=en_us

相关问题