HDFS missing block 问题处理记录

Ordiy Lv5

问题&环境说明

  • 问题
1
2
IDC机房突然异常断电,导致机器大规模断电重启,并出现IDC内网网络故障
部分物理机无法启动,导致HDFS blokc 丢失
  • 环境信息
1
2
3
4
5
Hadoop 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
12
sudo 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
3
blk_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
2
机器可以恢复  ---> ,修复机器,并启动datanode
机器无法恢复,强制删除相关文件(需业务自行评估风险和确认)
  • Title: HDFS missing block 问题处理记录
  • Author: Ordiy
  • Created at : 2022-12-16 15:01:48
  • Updated at : 2025-03-26 09:39:38
  • Link: https://ordiy.github.io/posts/2022-12-15-hdfs-block-miss-notes/
  • License: This work is licensed under CC BY 4.0.
On this page
HDFS missing block 问题处理记录