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。

相关推荐
钊兵9 分钟前
hivesql是什么数据库?
大数据·hive
predisw40 分钟前
Kafka如何实现高性能
分布式·kafka
人大博士的交易之路1 小时前
今日行情明日机会——20250516
大数据·数学建模·数据挖掘·程序员创富·缠中说禅·涨停回马枪·道琼斯结构
斯普信专业组1 小时前
Elasticsearch索引全生命周期管理指南之一
大数据·elasticsearch·搜索引擎
好吃的肘子2 小时前
MongoDB 应用实战
大数据·开发语言·数据库·算法·mongodb·全文检索
招风的黑耳3 小时前
Axure设计的“广东省网络信息化大数据平台”数据可视化大屏
大数据·信息可视化·原型·数据可视化
今天我又学废了3 小时前
Spark,数据清洗
大数据
joker D8884 小时前
【C++】深入理解 unordered 容器、布隆过滤器与分布式一致性哈希
c++·分布式·哈希算法
CET中电技术4 小时前
“光伏+储能+智能调控”,CET中电技术分布式智能微网方案如何实现?
分布式·储能·光伏
野曙4 小时前
快速选择算法:优化大数据中的 Top-K 问题
大数据·数据结构·c++·算法·第k小·第k大