NameNode登录我的HDFS实例,最近开始以Requested data length 145530837 is longer than maximum configured RPC length 144217728
形式记录警告。
这最终表现为NameNode声明缺少数千个块和19个文件被破坏。
此问题已解决,方法是将ipc.maximum.data.length
更新为大于上面列出的请求数据长度的值。但是,这不是令人满意的解决方案。我想了解这个问题是怎么发生的。
我跑过hdfs fsck -files -blocks -locations
,最大的块的长度为1342177728
。
- RPC调用有一些开销吗?长度为
1342177728
的块是否会导致该帖子顶部显示原始警告日志? - 我的理解是,初始化HDFS连接时,写入HDFS的客户端可以指定块大小的唯一方法是通过
-Ddfs.blocksize
或在Configuration
对象上设置相应的属性。这是正确的吗?还是有其他方法可以创建太大的块? - 除了块太大以外,是否还有其他问题可以触发上述警告?