Hadoop:DataNode启动失败:Initialization failed for Block pool

一、问题发现

​在启动Hadoop集群后,发现原本应该是启动三台机子的数据节点,结果只有一台node2成功启动,另外两台(node1、node3)并没有启动,如下两图所示:
在这里插入图片描述
在这里插入图片描述
问题描述:
​确认配置信息没问题后,查看Hadoop下hdfs目录中的DataNode日志(配置文件中指定,比如笔者安装Hadoop所在路径为/export/server/hadoop/logs/hdfs),DataNode的日志文件为:
在这里插入图片描述
cat该文件发现:

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid 9ef28a73-7266-4561-9a03-b79914df66af) service to node1/192.168.88.130:8020. Exiting. 
java.io.IOException: All specified directories have failed to load.

在这里插入图片描述
问题分析:
由于前一次启动Hadoop集群时,对node2这台机器上的Hadoop的mapred配置错误,因此当时node2的Datanode没有启动成功,因此笔者做了格式化操作(hdfs namenode-format),这就导致namenode中的clusterID重新生成,但Datanode中的clusterID并没有跟着改变,因此出现上述错误。如以下图所示:
图1:DataNode的VERSION
在这里插入图片描述
图2:NameNode的VERSION
在这里插入图片描述
可以看到,DataNode下VERSION中的clusterID和NameNode下VERSION中的clusterID不一致。

二、解决方法

首先,将Hadoop集群停掉。然后,将DataNode下VERTSION文件中的clusterID更改成和NameNode下VERSION文件中的clusterID一致。改完并重启Hadoop后,三个集群节点顺利启动:
在这里插入图片描述
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值