hadoop2.x.x格式化遇到的问题

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:  解决hadoop启动hdfs时,datanode无法启动的问题。错误为

1 概述

 解决hadoop启动hdfs时,datanode无法启动的问题。错误为:

java.io.IOException: Incompatible clusterIDs in /home/lxh/hadoop/hdfs/data: namenode clusterID = CID-a3938a0b-57b5-458d-841c-d096e2b7a71c; datanode clusterID = CID-200e6206-98b5-44b2-9e48-262871884eeb

2 问题描述

 执行start-dfs.sh后,根据打印日志,可以看到分别执行了NameNode、DataNode的操作。


Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/lxh/hadoop/hadoop-2.4.1/logs/hadoop-lxh-namenode-ubuntu.out
localhost: starting datanode, logging to /home/lxh/hadoop/hadoop-2.4.1/logs/hadoop-lxh-datanode-ubuntu.out

 但是执行jps查看启动结果时,返现DataNode并没有启动。


10256 ResourceManager
29634 NameNode
29939 SecondaryNameNode
30054 Jps
10399 NodeManager

3 查找问题

 很是费解,刚刚还能够正常运行,并且执行了wordcount的测试程序。于是回想了一下刚才的操作,执行了dfs格式化(hdfs namenode -format和hdfs datanode -format),然后重新启动就出现了这个情况。难道与格式化有关?于是查看日志:


2014-08-08 00:32:08,787 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool <registering> (Datanode Uuid unassigned) service to localhost/127.0.0.1:9000. Exiting. 
java.io.IOException: Incompatible clusterIDs in /home/lxh/hadoop/hdfs/data: namenode clusterID = CID-a3938a0b-57b5-458d-841c-d096e2b7a71c; datanode clusterID = CID-200e6206-98b5-44b2-9e48-262871884eeb
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:477)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:226)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:254)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:974)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:945)
    at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:278)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:220)
    at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:816)
    at java.lang.Thread.run(Thread.java:745)
2014-08-08 00:32:08,790 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Ending block pool service for: Block pool <registering> (Datanode Uuid unassigned) service to localhost/127.0.0.1:9000
2014-08-08 00:32:08,791 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Removed Block pool <registering> (Datanode Uuid unassigned)

 根据日志描述,原因是datanode的clusterID 和 namenode的clusterID 不匹配。


 原因找到,看看是否如日志描述的这样。


 打开hdfs-site.xml中关于datanode和namenode对应的目录,分别打开其中的current/VERSION文件,进行对比。


${datanode}/current/VERSION:


storageID=DS-be8dfa2b-17b1-4c9f-bbfe-4898956a39ed
clusterID=CID-200e6206-98b5-44b2-9e48-262871884eeb
cTime=0
datanodeUuid=406b6d6a-0cb1-453d-b689-9ee62433b15d
storageType=DATA_NODE
layoutVersion=-55

${namenode}/current/VERSION:


namespaceID=670379
clusterID=CID-a3938a0b-57b5-458d-841c-d096e2b7a71c
cTime=0
storageType=NAME_NODE
blockpoolID=BP-325596647-127.0.1.1-1407429078192
layoutVersion=-56

 果然如日志中记录的一样,于是修改datanode的VERSION文件中的clusterID,使与namenode保持一致,然后启动dfs(执行start-dfs.sh),在执行jps查看启动情况,发现全部正常启动。

10256 ResourceManager
30614 NameNode
30759 DataNode
30935 SecondaryNameNode
31038 Jps
10399 NodeManager

4 分析问题原因

 执行hdfs namenode -format后,current目录会删除并重新生成,其中VERSION文件中的clusterID也会随之变化,而datanode的VERSION文件中的clusterID保持不变,造成两个clusterID不一致。


 所以为了避免这种情况,可以再执行的namenode格式化之后,删除datanode的current文件夹,或者修改datanode的VERSION文件中出clusterID与namenode的VERSION文件中的clusterID一样,然后重新启动dfs。



相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5月前
|
存储 分布式计算 运维
Hadoop重新格式化HDFS的方案
【8月更文挑战第8天】
150 2
|
6月前
|
存储 分布式计算 Hadoop
Hadoop格式化前检查集群状态
【7月更文挑战第22天】
93 14
|
6月前
|
存储 分布式计算 Hadoop
Hadoop格式化前理解影响
【7月更文挑战第22天】
96 11
|
6月前
|
分布式计算 Hadoop 测试技术
Hadoop格式化前备份数据
【7月更文挑战第22天】
158 7
|
6月前
|
分布式计算 监控 安全
Hadoop格式化前使用DistCp工具
【7月更文挑战第23天】
91 6
|
6月前
|
分布式计算 Hadoop
hadoop格式化HDFS问题
【7月更文挑战第15天】
162 12
|
6月前
|
存储 分布式计算 安全
Hadoop格式化前使用快照功能
【7月更文挑战第23天】
64 5
|
6月前
|
存储 分布式计算 Hadoop
hadoop格式化前数据导出
【7月更文挑战第23天】
51 5
|
6月前
|
存储 分布式计算 监控
hadoop格式化前的注意事项
【7月更文挑战第21天】
104 6
|
6月前
|
存储 分布式计算 资源调度
hadoop确认格式化的方法
【7月更文挑战第21天】
102 5

相关实验场景

更多