版权声明:技术专栏,转载请注明! https://blog.csdn.net/wankunde/article/details/79199870
问题描述
在HDFS namenode在切换的时候,发现切换后有大量Missing replicas.
文章 HDFS HA切换后missing block问题分析 有分析,问题原因是因为DataNode blockReport时,Edit log 还没有进行同步导致的问题。
Hdfs Ha 管理命令
查看NameNode状态
hdfs haadmin -getServiceState nn1
NameNode 切换
hdfs haadmin -failover -forcefence -forceactive nn2 nn1
注意:此处“nn2 nn1”的顺序表示active状态由nn2转换到nn1上查看丢失的文件对应的Block(页面也会显示Block ID)
hdfs fsck /user/hive/warehouse/xxx/000357_0 -blocks -locations -racks
/user/hive/warehouse/xxx/000357_0: CORRUPT blockpool BP-1824149417-26.6.0.28-1450834291847 block blk_2153067578
查找Block所在机器
pssh -h nodes -A -i 'sudo find /data/*/dn/ -name blk_2153067578'
重启DataNode,HDFS恢复正常
其实啥也不做,等一个小时后,DataNode 做全量汇报后,集群状态也会恢复正常~~~