Hadoop 请求数据长度 Requested Data length 超过配置的最大值

一、问题

现象

Spark 任务速度变慢,也不失败。

DataNode 内存足够 CPU 负载不高 GC 时间也不长。

查看 DataNode 日志,发现有些日志出现很多 Netty RPC 超时。超时的 destination 是一个 NameNode 节点,然后查看 NameNode 节点的日志,报错如下:

二、解决方案

查找对应 Hadopo 源码

源码

org.apache.hadoop.ipc.Server.Connection#checkDataLength

java 复制代码
    private void checkDataLength(int dataLength) throws IOException {
      if (dataLength < 0) {
        String error = "Unexpected data length " + dataLength +
                       "!! from " + getHostAddress();
        LOG.warn(error);
        throw new IOException(error);
      } else if (dataLength > maxDataLength) { 
        String error = "Requested data length " + dataLength +
              " is longer than maximum configured RPC length " + 
            maxDataLength + ".  RPC came from " + getHostAddress();
        LOG.warn(error);
        throw new IOException(error);    // <-------------- 异常从此处抛出来
      }
    }

this.maxDataLength = conf.getInt(CommonConfigurationKeys.IPC_MAXIMUM_DATA_LENGTH,
       CommonConfigurationKeys.IPC_MAXIMUM_DATA_LENGTH_DEFAULT);

  /** Max request size a server will accept. */
  public static final String IPC_MAXIMUM_DATA_LENGTH =
      "ipc.maximum.data.length";
  /** Default value for IPC_MAXIMUM_DATA_LENGTH. */
  public static final int IPC_MAXIMUM_DATA_LENGTH_DEFAULT = 64 * 1024 * 1024;

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

xml 复制代码
<property>
  <name>ipc.maximum.data.length</name>
  <value>67108864</value>
  <description>This indicates the maximum IPC message length (bytes) that can be
    accepted by the server. Messages larger than this value are rejected by the
    immediately to avoid possible OOMs. This setting should rarely need to be
    changed.
  </description>
</property>

64M -> 256M

67108864 * 4 = 268435456

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

最后重启 NameNode,再重启 DataNode。

相关推荐
爱吃泡芙的小白白22 分钟前
爬虫学习——使用HTTP服务代理、redis使用、通过Scrapy实现分布式爬取
redis·分布式·爬虫·http代理·学习记录
island13141 小时前
【git#4】分支管理 -- 知识补充
大数据·git·elasticsearch
LCHub低代码社区1 小时前
钧瓷产业原始创新的许昌共识:技术破壁·产业再造·生态重构(一)
大数据·人工智能·维格云·ai智能体·ai自动化·大禹智库·钧瓷码
晴天彩虹雨2 小时前
Flink 数据清洗与字段标准化最佳实践
大数据·数据仓库·flink
一个数据大开发2 小时前
解读《数据资产质量评估实施规则》:企业数据资产认证落地的关键指南
大数据·数据库·人工智能
TTBIGDATA2 小时前
如何将 Apache Hudi 接入 Ambari?完整部署与验证指南
大数据·hadoop·ambari·hudi·bigtop·湖仓·自定义组件集成
科技在线3 小时前
科技赋能建筑新未来:中建海龙模块化建筑产品入选中国建筑首批产业化推广产品
大数据·人工智能
24k小善4 小时前
Flink TaskManager详解
java·大数据·flink·云计算
时序数据说4 小时前
时序数据库IoTDB在航空航天领域的解决方案
大数据·数据库·时序数据库·iotdb
IT成长日记5 小时前
【Hive入门】Hive数据导出完全指南:从HDFS到本地文件系统的专业实践
hive·hadoop·hdfs·数据导出