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。

相关推荐
en-route5 分钟前
Kafka 参数配置与启动详解
分布式·kafka
沃达德软件5 分钟前
智慧警务与数据分析
大数据·人工智能·信息可视化·数据挖掘·数据分析
A-刘晨阳5 分钟前
时序数据库选型指南:从大数据视角看 Apache IoTDB 的优势
大数据·apache·时序数据库·iotdb
Web3VentureView11 分钟前
从“庞氏骗局”到“价值发现”:Web3 行业自我修正与新范式的曙光
大数据·金融·web3·去中心化·区块链
5008412 分钟前
鸿蒙 Flutter 分布式安全:软总线加密通信与设备互信认证
分布式·安全·flutter·华为·架构·wpf·开源鸿蒙
怪侠Kevin13 分钟前
Seata事务集成Kafka,实现事务一致性
分布式·kafka
量子信使14 分钟前
分布式经典密钥资源池与分布式量子密钥资源池的差异分析
分布式
吃好喝好玩好睡好17 分钟前
OpenHarmony下Electron+Flutter应用自动化测试框架构建全流程指南
大数据·flutter·electron·vr·数据库架构
非著名架构师17 分钟前
智慧城市的“气候大脑“:气象大数据如何优化城市级能源调度与供需平衡
大数据·人工智能·数据分析·智慧城市·风光功率预测·高精度天气预报数据
doris61018 分钟前
制造企业如何实现设备全生命周期管理?
大数据·网络·人工智能