hadoop Requested data length 86483783 is longer than maximum configured RPC length
解决
修改NameNode的hdfs-site.xml配置文件,添加以下配置:
<property>
<name>ipc.maximum.data.length</name>
<value>134217728</value>
</property>
允许ipc通讯最大的数据包为128MB,默认配置为64MB。
最后平滑重启NameNode,在重启异常的DataNode解决。
总结
出问题的集群规模比较小,但是小文件数量特别多。
从日志看是内存不足导致DataNode跪了,然后随即的重启,DataNode要给NameNode上报block信息,由于block信息较多,ipc通信的数据包超过了64MB,NameNode返回异常了,导致DataNode这边出现EOFException
的异常,由于这个异常,DataNode没能把block信息上报给NameNode,NameNode就认为block丢失了。
这次的问题是由于block数量较多导致,也分析了下block数量与资源消耗的关系,针对单个DataNode上有500W个左右的block,大概消耗如下:
- DataNode内存6GB左右
- 一次性向NameNode汇报block的ipc数据包大小约为64MB
今后维护HDFS可以根据block的数量信息分配合理的内存和ipc.maximum.data.length
大小了。
参考:
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » hadoop 重启异常,找不到DN块文件
发表评论 取消回复