DataNode 启动失败(ClusterID不一致):Initialization failed for Block pool

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: 
Initialization failed for Block pool <registering> 
(Datanode Uuid 1098277a-8189-4b88-9a9b-31dbb7cdd27f) service to hadoop162/192.168.1.162:8020. Exiting. 
java.io.IOException: All specified directories have failed to load.


问题描述
开机启动集群时,发现有节点的DataNode没有启动。

确认配置信息没问题后,观察节点的中的datanode日志(配置文件中指定)发现:Initialization failed for Block pool

问题分析

在第一次格式化dfs后,启动并使用了hadoop,后来又重新执行了格式化命令(hdfs namenode -format),这时NameNode的clusterID会重新生成,而DataNode的clusterID 保持不变。

每次namenode format会重新创建一个namenodeId,而data目录包含了上次format时的id,namenode  format清空了NameNode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空data下的所有目录。



解决方法:
方法一

        停掉集群,删除问题节点的data目录下的所有内容。即hdfs-site.xml文件中配置的dfs.data.dir目录(我的目录:/opt/hadoopdata)。重新格式化NameNode。

方法二

        停掉集群,然后将出现问题的DataNode节点目录/opt/hadoopdata/dfs/data/current/下的VERSION中clusterID的修改为与NameNode中/opt/hadoopdata/dfs/name/current/下的VERSION中clusterID一致即可。

其实只需要把 data/current/VERSION中的clusterID改为和 name/current/VERSION中的clusterID一致。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值