HDFS missing block 问题处理记录
问题&环境说明
问题
1
2IDC机房突然异常断电,导致机器大规模断电重启,并出现IDC内网网络故障
部分物理机无法启动,导致HDFS blokc 丢失环境信息
1
2
3
4
5Hadoop Version: 2.6.0-cdh5.8.4
HDFS fediration: 3组 ,分别是:nameservice1 / nfjd-prod-ns3 / nfjd-prod-ns2
Ranger + Kerberos 进行ACL和身份认证
IDC 自建私有云 , 物理机数量 1000+, 数据总量60P左右
排查问题
nanmenode 提示miss block
获取missing block 列表
1
2
3
4
5
6
7
8
9
10
11
12sudo su - hdfs
# 检查身份认证信息
klist
# 列出缺失的块
hdfs fsck hdfs://nameservice1/ -list-corruptfileblocks >> 1215-miss-block.txt
hdfs fsck hdfs://nfjd-prod-ns3/ -list-corruptfileblocks >> 1215-miss-block.txt
hdfs fsck hdfs://nfjd-prod-ns2/ -list-corruptfileblocks >> 1215-miss-block.txt查看内容
head 1215-miss-block.txt
1
2
3blk_12885018324 /user/hive/warehouse/....
blk_8321645613 /user/hive/warehouse/....
....统计涉及的表和目录 提取目录的前7层,涉及的hive库和table
1
cat 1215-miss-block.txt | awk '{print $2}' | awk -F'/' '{ print $1"/"$2"/"$3"/"$4"/"$5"/"$6"/"$7 }' | sort | uniq
后续
对于缺失的块,如何修复:
1 | 机器可以恢复 ---> ,修复机器,并启动datanode |