"Buffer pool is destroyed" 在 Apache Flink flapMap 运算符中发现的问题



>当我尝试在flatMap运算符中写入OUT集合时,我得到非法状态异常(仅在高负载下(:缓冲池被破坏我在这里做错了什么?当 flink 抛出缓冲池错误时?

java.lang.RuntimeException:  Buffer pool is destroyed.
    at org.apache.flink.streaming.runtime.io.RecordWriterOutput.pushToRecordWriter(RecordWriterOutput.java:110)
    at org.apache.flink.streaming.runtime.io.RecordWriterOutput.collect(RecordWriterOutput.java:89)
    at org.apache.flink.streaming.runtime.io.RecordWriterOutput.collect(RecordWriterOutput.java:45)
    at org.apache.flink.streaming.api.operators.AbstractStreamOperator$CountingOutput.collect(AbstractStreamOperator.java:718)
    at org.apache.flink.streaming.api.operators.AbstractStreamOperator$CountingOutput.collect(AbstractStreamOperator.java:696)
    at org.apache.flink.streaming.api.operators.TimestampedCollector.collect(TimestampedCollector.java:51)
..........
Caused by: java.lang.IllegalStateException:  Buffer pool is destroyed.
    at org.apache.flink.util.Preconditions.checkState(Preconditions.java:179)
    at org.apache.flink.runtime.io.network.buffer.BufferBuilder.append(BufferBuilder.java:79)
    at org.apache.flink.runtime.io.network.api.serialization.SpanningRecordSerializer.copyToBufferBuilder(SpanningRecordSerializer.java:95)
    at org.apache.flink.runtime.io.network.api.writer.RecordWriter.copyFromSerializerToTargetChannel(RecordWriter.java:150)
    at org.apache.flink.runtime.io.network.api.writer.RecordWriter.emit(RecordWriter.java:128)
    at org.apache.flink.runtime.io.network.api.writer.RecordWriter.emit(RecordWriter.java:101)
    at org.apache.flink.streaming.runtime.io.StreamRecordWriter.emit(StreamRecordWriter.java:81)
    at org.apache.flink.streaming.runtime.io.RecordWriterOutput.pushToRecordWriter(RecordWriterOutput.java:107)```

什么是缓冲池?

缓冲池是网络堆栈的内存段实例的固定大小池,这意味着您在发送数据时将段放入其中,并在通过网络接收数据时从中获取段。

为什么它被摧毁了?

缓冲池被销毁,因为网络环境关闭。

为什么网络环境会关闭?

这可能是我不太确定的特定情况。我建议您阅读此缓冲池异常上方的更多日志。

相关内容

  • 没有找到相关文章

最新更新