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

1,报错信息

org.apache.hadoop.ipc.Client(1093): Unexpected error reading responses on connection Thread[IPC 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"

相关推荐
火星资讯1 小时前
Zenlayer AI Gateway 登陆 Dify 市场,轻装上阵搭建 AI Agent
大数据·人工智能
星海拾遗2 小时前
git rebase记录
大数据·git·elasticsearch
Elastic 中国社区官方博客2 小时前
Elasticsearch:在分析过程中对数字进行标准化
大数据·数据库·elasticsearch·搜索引擎·全文检索
香精煎鱼香翅捞饭4 小时前
记一次多线程调用TDEngine restful获取数据的时间异常
大数据·时序数据库·tdengine
AI_56785 小时前
Webpack5优化的“双引擎”
大数据·人工智能·性能优化
慎独4135 小时前
家家有平台:Web3.0绿色积分引领消费新纪元
大数据·人工智能·物联网
百***24376 小时前
GPT-5.2 技术升级与极速接入指南:从版本迭代到落地实践
大数据·人工智能·gpt
专业开发者7 小时前
奇迹由此而生:回望 Wi-Fi® 带来的诸多意外影响
大数据
尔嵘7 小时前
git操作
大数据·git·elasticsearch
古德new7 小时前
openFuyao AI大数据场景加速技术实践指南
大数据·人工智能