dinky提交flink任务报 java.lang.OutOfMemoryError: Direct buffer memory

1,报错信息

org.apache.hadoop.ipc.Client(1093): Unexpected error reading responses on connection ThreadIPC Client (815834176) connection to prod52.bigdata/xx.xx.x.xx:8020 from appuser,5,main java.lang.OutOfMemoryError: Direct buffer memory

at java.nio.Bits.reserveMemory(Bits.java:694) ~?:1.8.0_201 at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123) ~?:1.8.0_201 at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311) ~?:1.8.0_201 at sun.nio.ch.Util.getTemporaryDirectBuffer(Util.java:241) ~?:1.8.0_201 at sun.nio.ch.IOUtil.read(IOUtil.java:195) ~?:1.8.0_201 at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) ~?:1.8.0_201 at org.apache.hadoop.net.SocketInputStreamReader.performIO(SocketInputStream.java:57) \~\[flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0\] at org.apache.hadoop.net.SocketIOWithTimeout.doIO(SocketIOWithTimeout.java:142) \~\[flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0\] at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:161) \~\[flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0\] at org.apache.hadoop.net.SocketInputStream.read(SocketInputStream.java:131) \~\[flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0\] at java.io.FilterInputStream.read(FilterInputStream.java:133) \~\[?:1.8.0_201\] at java.io.BufferedInputStream.read1(BufferedInputStream.java:284) \~\[?:1.8.0_201\] at java.io.BufferedInputStream.read(BufferedInputStream.java:345) \~\[?:1.8.0_201\] at java.io.DataInputStream.read(DataInputStream.java:149) \~\[?:1.8.0_201\] at java.io.FilterInputStream.read(FilterInputStream.java:133) \~\[?:1.8.0_201\] at org.apache.hadoop.ipc.ClientConnectionPingInputStream.read(Client.java:581) \~\[flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0\] at java.io.DataInputStream.readFully(DataInputStream.java:195) \~\[?:1.8.0_201\] at java.io.DataInputStream.readFully(DataInputStream.java:169) \~\[?:1.8.0_201\] at org.apache.hadoop.ipc.ClientIpcStreams.readResponse(Client.java:1897) ~flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0 at org.apache.hadoop.ipc.ClientConnection.receiveRpcResponse(Client.java:1191) \~\[flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0\] at org.apache.hadoop.ipc.ClientConnection.run(Client.java:1087) ~flink-shaded-hadoop-3-uber-3.1.1.7.2.9.0-173-9.0.jar:3.1.1.7.2.9.0-173-9.0

2,报错原因

Dinky 在提交 Flink 任务到 YARN 集群时,因 java.lang.OutOfMemoryError: Direct buffer memory 错误失败。

这个错误发生在 Dinky 服务进程本身(不是 Flink JobManager 或 TaskManager),具体是在它通过 Hadoop RPC 客户端连接 YARN ResourceManager时,尝试分配 Direct Memory(堆外内存)失败**。**

复制代码
java.lang.OutOfMemoryError: Direct buffer memory

表示 JVM 的 Direct Memory(堆外内存)耗尽 。

Direct Memory 不受 -Xmx 控制,而是由 -XX:MaxDirectMemorySize 限制(默认等于 -Xmx)。

Dinky 在提交任务时:

  1. 加载了 flink-shaded-hadoop-3-uber-*.jar
  2. 使用 Hadoop 客户端与 YARN RM 通信(IPC)
  3. Hadoop RPC 使用 DirectByteBuffer 进行网络 I/O(提升性能)
  4. Direct Memory 不足 → 抛出 OOM

3,解决方案

为 Dinky JVM 显式设置 -XX:MaxDirectMemorySize

JAVA_OPTS="-Xmx4g -Xms4g -XX:MaxDirectMemorySize=2g -XX:+UseG1GC"

相关推荐
会议咨询26 分钟前
2027年智慧能源、大数据应用与人工智能国际会议(SEBA 2027)
大数据·人工智能·能源
SelectDB1 小时前
安全评审卡了三周,我把部署形态的四种选项重新排了一遍
大数据·数据库·云原生
注塑机数据采集联网2 小时前
注塑机生产管控MES系统应用
大数据·运维·服务器·人工智能·物联网
2601_952047794 小时前
聚水潭售后退仓单同步到金蝶云·星空退货单:轻易云实战教程
大数据·机器人·钉钉·制造
QYRese5 小时前
全球氢气压缩机市场发展前景报告:2026-2032年CAGR5.5%
大数据
四季豆335 小时前
AI时代中小企业如何低成本提升数据和知识质量?
大数据·人工智能·数据挖掘
2601_967212725 小时前
轨道式插座安全结构、认证要求与场景参数技术说明
大数据·经验分享·安全
方向研究5 小时前
日本地价百年
大数据
Flynn Liang6 小时前
物联网时序数据乱序问题全链路治理:从设备到存储的五层实战(附 Flink/Kafka/IoTDB 配置级代码)
flink·kafka·iot·iotdb·emqx·乱序·时序数据
4SAPI6 小时前
多模态 AI 应用统一接入网关生产选型指南:4SAPI、硅基流动与 OpenRouter 的架构权衡
大数据·人工智能·架构·php·1024程序员节