block missing问题排查流程

当集群出现block missing异常时,一般的排查流程如下:

  1. 首先检查是否有datanode处于dead或Decommissioned状态,如果是,尝试恢复datanode,一般block missing会自行消失
  2. 如果所有datanode都处于健康状态,则查看是否有datanode的block-report存在问题,有的话分析对应日志,排查原因
    block-report出现问题的一个常见原因:ipc.maximum.data.length的参数值设置的比较小,同时datanode管理的block快太多,导致datanode向namenode汇报时的报文大小超过了该参数值的设置。发生超长时,datanode会报如下异常,同时,datanode的gc会非常频繁:

  3. 如果上述情况都不符,则需要排查是否直接操作过hdfs文件,导致数据发生了丢失,是的话,需要分情况进行处理
    如果没有出现【corrupted block】,则让集群自己恢复即可,namenode会进行recovery操作,保证block的副本数达到设定值
    如果出现了【corrupted block】,并且长时间无法恢复,则说明block的所有副本都丢失了,此时只能通过fask命令删除坏块儿,再尝试补数据了
posted @ 2019-11-10 19:05  神州优车技术  阅读(802)  评论(0编辑  收藏  举报