datanode未正确启动

bhmjp9jg  于 2021-06-04  发布在  Hadoop
关注(0)|答案(11)|浏览(405)

我正在尝试以伪分布式模式安装hadoop2.2.0。当我试图启动datanode服务时,它显示了以下错误,有人能告诉我如何解决这个问题吗?


**2**014-03-11 08:48:15,916 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Block pool <registering> (storage id unknown) service to localhost/127.0.0.1:9000 starting to offer service

2014-03-11 08:48:15,922 INFO org.apache.hadoop.ipc.Server: IPC Server Responder: starting
2014-03-11 08:48:15,922 INFO org.apache.hadoop.ipc.Server: IPC Server listener on 50020: starting
2014-03-11 08:48:16,406 INFO org.apache.hadoop.hdfs.server.common.Storage: Lock on /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode/in_use.lock acquired by nodename 3627@prassanna-Studio-1558
2014-03-11 08:48:16,426 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-611836968-127.0.1.1-1394507838610 (storage id DS-1960076343-127.0.1.1-50010-1394127604582) service to localhost/127.0.0.1:9000
java.io.IOException: Incompatible clusterIDs in /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode: namenode clusterID = CID-fb61aa70-4b15-470e-a1d0-12653e357a10; datanode clusterID = CID-8bf63244-0510-4db6-a949-8f74b50f2be9
    at****org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:391)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:191)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:219)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:837)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:808)
    at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:280)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:222)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:664)
    at java.lang.Thread.run(Thread.java:662)
2014-03-11 08:48:16,427 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool BP-611836968-127.0.1.1-1394507838610 (storage id DS-1960076343-127.0.1.1-50010-1394127604582) service to localhost/127.0.0.1:9000
2014-03-11 08:48:16,532 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool BP-611836968-127.0.1.1-1394507838610 (storage id DS-1960076343-127.0.1.1-50010-1394127604582)
2014-03-11 08:48:18,532 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Exiting Datanode
2014-03-11 08:48:18,534 INFO org.apache.hadoop.util.ExitUtil: Exiting with status 0
2014-03-11 08:48:18,536 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:
uelo1irk

uelo1irk1#

每当出现以下错误时,尝试在从属计算机上启动dn:

java.io.IOException: Incompatible clusterIDs in /home/hadoop/dfs/data: namenode clusterID=****; datanode clusterID =****

这是因为在设置集群之后,无论出于什么原因,您都决定重新格式化nn。你在奴隶上的dns仍然引用旧的nn。
要解决这个问题,只需在本地linux fs中删除并重新创建该计算机上的数据文件夹,即/home/hadoop/dfs/data。
在该计算机上重新启动该dn的守护程序将重新创建数据/文件夹的内容并解决问题。

bcs8qyzn

bcs8qyzn2#

您必须执行以下操作: bin/stop-all.sh rm -Rf /home/prassanna/usr/local/hadoop/yarn_data/hdfs/* bin/hadoop namenode -format 我也有同样的问题,直到我在这个网站上找到了答案。

nnvyjq4y

nnvyjq4y3#

我在伪分布式环境中遇到了类似的问题。我首先停止了集群,然后从namenode的版本文件中复制集群id并将其放入datanode的版本文件中,然后重新启动集群,一切正常。
我的数据路径是/usr/local/hadoop/hadoop\u store/hdfs/datanode和/usr/local/hadoop/hadoop\u store/hdfs/namenode。
仅供参考:版本文件位于/usr/local/hadoop/hadoop\u store/hdfs/datanode/current/;namenode也是如此。

qyyhg6bp

qyyhg6bp4#

我也有类似的问题。我从所有节点中删除了namenode和datanode文件夹,然后重新运行:

$HADOOP_HOME/bin> hdfs namenode -format -force
$HADOOP_HOME/sbin> ./start-dfs.sh
$HADOOP_HOME/sbin> ./start-yarn.sh

从命令行检查运行状况报告(我建议这样做)

$HADOOP_HOME/bin> hdfs dfsadmin -report

所有的节点都正常工作了。

cxfofazt

cxfofazt5#

hadoop2.7.7也有同样的问题
我删除了namenode和所有datanode上的namenode/current&datanode/current目录
已在删除文件 /tmp/hadoop-ubuntu/* 然后格式化namenode和datanode
重新启动所有节点。
一切正常
步骤:停止所有节点/管理器,然后尝试以下步骤 rm -rf /tmp/hadoop-ubuntu/* (所有节点) rm -r /usr/local/hadoop/data/hdfs/namenode/current (namenode:检查 hdfs-site.xml 用于路径) rm -r /usr/local/hadoop/data/hdfs/datanode/current (datanode:check hdfs-site.xml 用于路径) hdfs namenode -format (在namenode上) hdfs datanode -format (在namenode上)
重新启动namenode和data节点

ejk8hzay

ejk8hzay6#

你可以用下面的方法,
复制到剪贴板数据节点clusterid对于您的示例,cid-8bf63244-0510-4db6-a949-8f74b50f2be9
并在hadoop\u home/bin目录下运行以下命令

./hdfs namenode -format -clusterId CID-8bf63244-0510-4db6-a949-8f74b50f2be9

然后这个代码用datanode集群id格式化namenode。

wfveoks0

wfveoks07#

datanode因与namenode相比不兼容的ClusterId而死亡。要解决此问题,需要删除目录/tmp/hadoop-[user]/hdfs/data并重新启动hadoop。

rm -r /tmp/hadoop-[user]/hdfs/data
qvk1mo1f

qvk1mo1f8#

对于这个问题有不同的解决方案,但我测试了另一个简单的解决方案,效果非常好:
因此,如果有人遇到相同的错误,您只需使用版本文件中namenode的clusterid更改datanodes中的clusterid。
对于您的案例,您可以在datanode端更改它:
名称节点clusterid=cid-fb61aa70-4b15-470e-a1d0-12653e357a10;数据节点clusterid=cid-8bf63244-0510-4db6-a949-8f74b50f2be9
备份当前版本:
cp /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode/current/VERSION /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode/current/VERSION.BK vim /home/prassanna/usr/local/hadoop/yarn_data/hdfs/datanode/current/VERSION 和改变
群集ID=cid-8bf63244-0510-4db6-a949-8f74b50f2be9
具有
群集ID=cid-fb61aa70-4b15-470e-a1d0-12653e357a10
重新启动datanode,它应该可以工作。

kmpatx3s

kmpatx3s9#

在这里,datanode会立即停止,因为datanode和namenode的clusterid不同。因此,必须将namenode的clusterid格式化为datanode的clusterid
复制示例的datanode clusterid,cid-8bf63244-0510-4db6-a949-8f74b50f2be9,并从主目录运行以下命令。你只需打字就可以进入你的家庭目录 cd 在你的终端上。
现在从home dir输入命令:

hdfs namenode -format -clusterId CID-8bf63244-0510-4db6-a949-8f74b50f2be9
vxf3dgd4

vxf3dgd410#

删除core-site.xml中指定的namenode和datanode目录。之后,创建新目录并重新启动dfs和yarn。

jexiocij

jexiocij11#

执行以下简单步骤
清除hadoop的数据目录
再次格式化namenode
启动群集
在此之后,如果没有任何其他配置问题,集群将正常启动

相关问题