在部署 Flink 时,我收到以下 OOM 错误消息:
org.apache.flink.runtime.io.network.netty.exception.LocalTransportException: java.lang.OutOfMemoryError: Direct buffer Memory at org.apache.flink.runtime.io.network.netty.PartitionRequestClientHandler.exceptionCaught(PartitionRequestClientHandler.java:153( at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:246( at io.netty.channel.AbstractChannelHandlerContext.fireExceptionCaught(AbstractChannelHandlerContext.java:224( at io.netty.channel.ChannelInboundHandlerAdapter.exceptionCaught(ChannelInboundHandlerAdapter.java:131(
由以下原因引起:io.netty.handler.codec.Decoder异常:java.lang.OutOfMemory错误:直接缓冲区内存 at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:234( at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308( ...9 更多
由以下原因引起:java.lang.OutOfMemory错误:直接缓冲区内存 at java.nio.Bits.reserveMemory(Bits.java:658( at java.nio.DirectByteBuffer.(DirectByteBuffer.java:123( at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311(
我在 flink-conf 文件中设置了"taskmanager.network.numberOfBuffers: 120000",但它不起作用。
任务管理器数量: 50, 每个任务管理器的内存: 16GB, 每个任务管理器的核心数: 16, 每个 TasmNager 的插槽数量: 8
对于我运行的作业,我使用 Parallelism 作为 25,原始数据文件约为 300GB,并且有很多连接操作,我想这需要大量的网络通信。
如果您对这里发生的事情有任何想法,请告诉我
你使用的是哪个版本的 Flink?Flink 0.10.0 和 0.10.1 在升级后的 Netty 版本中存在问题。此问题已在大约 3 三周前修复,尚未在版本中提供。
它固定在主分支(发布为 1.0-SNAPSHOT(或 0.10 分支中。