一、概述
hadoop集群有一台DataNode节点发生硬件故障,由于后需需要长时间的处理,所以从Cloudera集群中剔除了该节点,在重新将该节点添加到集群时候发现DataNode节点爆DataNode 卷故障阈值警告
二、解决过程
2.1、排查故障
排查DataNode日志发现如下错误:
2016-06-02 10:19:55,214 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: Failed to add volume: [DISK]file:/disk0/dfs/dn/
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /disk0/dfs/dn is in an inconsistent state: Root /disk0/dfs/dn: DatanodeUuid=0b9e33dc-984e-4679-a03b-4271362d3e53, does not match a5cd8b10-e7d4-40a9-bc6d-f5c0526d16e9 from other StorageDirectory.
at org.apache.hadoop.hdfs.server.datanode.DataStorage.setFieldsFromProperties(DataStorage.java:609)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.setFieldsFromProperties(DataStorage.java:564)
at org.apache.hadoop.hdfs.server.common.StorageInfo.readProperties(StorageInfo.java:232)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:667)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.loadStorageDirectory(DataStorage.java:288)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.prepareVolume(DataStorage.java:323)
at org.apache.hadoop.hdfs.server.datanode.fsdataset.impl.FsDatasetImpl.addVolume(FsDatasetImpl.java:383)
at org.apache.hadoop.hdfs.server.datanode.DataNode$2.call(DataNode.java:577)
at org.apache.hadoop.hdfs.server.datanode.DataNode$2.call(DataNode.java:573)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
发现DataNode在检查文件时候原本的uuid于实际DataNode中的uuid不匹配导致磁盘告警。
2.2、解决故障
- 找到/disk0/下面的VERSION文件重新编辑。
注意:我这里是一个DataNode物理机上面挂载着12块盘,通过与其他路径的VERSION文件做对比即可知道本来的uuid是什么样的。
[root@slave current]# pwd
/disk0/dfs/dn/current
[root@slave191 current]# vim VERSION
#将datanodeUuid的值改为a5cd8b10-e7d4-40a9-bc6d-f5c0526d16e9
- 重启该节点datanode
2.3、原因分析
该节点在我下机器之前应用的是cloudera 的模板1,但是我在重新挂载时候应用了模板2导致数据目录不一样了(/disk0被替换成/opt了),然后我又手动更改最终导致datanodeUuid不一致报警。
本文档描述了一台运行在Cloudera集群上的DataNode节点因硬件故障被剔除并重新加入时遇到的DataNode卷故障问题。解决过程中,通过分析日志发现磁盘UUID不匹配,通过编辑VERSION文件并重启DataNode节点成功解决了故障。故障的根本原因是应用了不同的配置模板导致数据目录变更。

3277

被折叠的 条评论
为什么被折叠?



