组件:HDFS/cube-hdfs-1
告警内容:NameNode Blocks Health:Total Blocks:[13352317], Missing Blocks:[1]
开始时间:2023-10-02 08:05:12
持续时间:8小时44分钟
- 主动发现阶段:
- 当数据块损坏后,DN节点执行directoryscan操作(间隔6小时)之前,不会发现损坏。
- dfs.datanode.directoryscan.interval : 21600
- 主动回复阶段:
- 在DN向NN进行blockreport(间隔6小时)前,都不会恢复数据块;
- dfs.blockreport.intervalMsec : 21600000
-
- 当NN收到blockreport才会进⾏行行恢复操作(也就是12小时之后)
重启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配置文件,添加以下配置:
- <property>
- <name>ipc.maximum.data.length</name>
- <value>134217728</value>
- </property>
允许ipc通讯最大的数据包为128MB,默认配置为64MB。
最后平滑重启NameNode,在重启异常的DataNode解决。