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"

相关推荐
Coder个人博客6 小时前
Linux6.19-ARM64 mm mmu子模块深入分析
大数据·linux·车载系统·系统架构·系统安全·鸿蒙系统
财经三剑客10 小时前
AI元年,春节出行安全有了更好的答案
大数据·人工智能·安全
岁岁种桃花儿10 小时前
Flink CDC从入门到上天系列第一篇:Flink CDC简易应用
大数据·架构·flink
TOPGUS11 小时前
谷歌SEO第三季度点击率趋势:榜首统治力的衰退与流量的去中心化趋势
大数据·人工智能·搜索引擎·去中心化·区块链·seo·数字营销
2501_9336707912 小时前
2026 高职大数据与会计专业零基础能考的证书有哪些?
大数据
ClouderaHadoop12 小时前
CDH集群机房搬迁方案
大数据·hadoop·cloudera·cdh
TTBIGDATA12 小时前
【Atlas】Ambari 中 开启 Kerberos + Ranger 后 Atlas Hook 无权限访问 Kafka Topic:ATLAS_HOOK
大数据·kafka·ambari·linq·ranger·knox·bigtop
程序员清洒12 小时前
CANN模型部署:从云端到端侧的全场景推理优化实战
大数据·人工智能
lili-felicity13 小时前
CANN多设备协同推理:从单机到集群的扩展之道
大数据·人工智能
pearbing14 小时前
天猫UV量提高实用指南:找准方向,稳步突破流量瓶颈
大数据·uv·天猫uv量提高·天猫uv量·uv量提高·天猫提高uv量