hdfs数据丢失数据块block missing问题排查解决

组件:HDFS/cube-hdfs-1 
告警内容:NameNode Blocks Health:Total Blocks:[13352317], Missing Blocks:[1]
开始时间:2023-10-02 08:05:12
持续时间:8小时44分钟

  • hadoop会在6个小时候自动检测并修复
主动发现阶段:
当数据块损坏后,DN节点执行directoryscan操作(间隔6小时)之前,不会发现损坏。
dfs.datanode.directoryscan.interval : 21600
主动回复阶段:
在DN向NN进行blockreport(间隔6小时)前,都不会恢复数据块; 
dfs.blockreport.intervalMsec : 21600000

当NN收到blockreport才会进⾏行行恢复操作(也就是12小时之后)
  • 手工重启hdfs服务后会自动修复
重启hdfs服务会进行坏块检测,若发现坏块就会进行主动修复(不定期的重启集群服务对数据块的保护有很大的益处)

但是数据一直没法恢复

排查hdfs datanode日志发现

java.io.IOException: Requested data length 67889237 is longer than maximum configured RPC length 67108864.  RPC came from 10.162.3.12

解决:

修改NameNode的hdfs-site.xml配置文件,添加以下配置:


    ipc.maximum.data.length
    134217728

允许ipc通讯最大的数据包为128MB,默认配置为64MB。

最后平滑重启NameNode,在重启异常的DataNode解决。

你可能感兴趣的:(Hadoop,hdfs,hadoop,大数据)