栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: 
Initialization failed for Block pool  
(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一致。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/325284.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号