hadoop 集群启动后,其他节点datanode无法启动 WARN org.apache.hadoop.hdfs.server.common.Storage: java.io.IOException

hadoop的logs中的异常提示:java.io.IOException: All specified directories are failed to load.(具体如下图所示:)
异常的截图
原因:
从日志上看是因为 datanode的clusterID 和 namenode的clusterID 不匹配

根本原因:
其实,是因为第一次格式化namenode后,启动了hadoop集群,生成了clusterID=CID-96ed3103-6cea-49ef-9c3a-b2c056de269c(这是第一次格式化后生成的clusterID)。后来又因某种原因,重新格式化了namenode,又重新生成了另一个新的clusterID=CID-2b6d3a1f-659d-4029-887d-1a20b9a2ecc4。导致,后来重新启动hadoop集群的时候,其他节点还是用第一次生成的clusterID,导致,找不到新的集群的clusterID,报了一个找不到指定目录的异常。
所以,出现问题一定要
查看日志,查看日志,查看日志,重要的事情说三遍

解决方案:
1、找到hadoop的配置文件:core-site.xml
2、在配置文件中,查看hadoop运行时,产生文件的存储目录,是配置在哪里
例如,我自己的配置如下:

	<property>
			<name>hadoop.tmp.dir</name>
			<value>/opt/module/hadoop-2.7.2/data/tmp</value>
	</property>

3、根据配置的路径,找到其他的datanode节点下的VERSION文件
例如,我的VERSION文件在以下的目录中:
/opt/module/hadoop-2.7.2/data/tmp/dfs/data/current 下
然后将其他datanode节点中的clusterID都修改为最后一次格式化后生成的clusterID
4、再一次启动 start-dfs.sh 集群后,jps ,就可看到所有节点的datanode正常使用了。web访问50070也可以正常访问了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值