我使用以下配置设置了Flink集群:
当我在具有400万个边和1,75万个具有并行度2的顶点的图形上运行Connected Components算法(org.apache.flink.graph.library.ConnectedComponents
)时,出现以下异常:
java.lang.RuntimeException:获取排序的输入时出错:线程“ SortMerger Reading Thread”由于异常而终止:记录超出了排序缓冲区的最大大小(当前最大值:87949312字节)。 在org.apache.flink.runtime.operators.sort.UnilateralSortMerger.getIterator(UnilateralSortMerger.java:619)上 在org.apache.flink.runtime.operators.BatchTask.getInput(BatchTask.java:1108) 在org.apache.flink.runtime.operators.NoOpDriver.run(NoOpDriver.java:82) 在org.apache.flink.runtime.operators.BatchTask.run(BatchTask.java:503) 在org.apache.flink.runtime.operators.BatchTask.invoke(BatchTask.java:368) 在org.apache.flink.runtime.taskmanager.Task.run(Task.java:703) 在java.lang.Thread.run(Thread.java:748) 由以下原因引起:java.io.IOException:线程'SortMerger Reading Thread'由于异常而终止:记录超出了排序缓冲区的最大大小(当前最大值:87949312字节)。 在org.apache.flink.runtime.operators.sort.UnilateralSortMerger $ ThreadBase.run(UnilateralSortMerger.java:800)中 由以下原因引起:java.io.IOException:该记录超过了排序缓冲区的最大大小(当前最大值:87949312字节)。 在org.apache.flink.runtime.operators.sort.UnilateralSortMerger $ ReadingThread.go(UnilateralSortMerger.java:955) 在org.apache.flink.runtime.operators.sort.UnilateralSortMerger $ ThreadBase.run(UnilateralSortMerger.java:796)
根据我的配置,我不知道为什么在有足够的内存段的情况下它显示The record exceeds the maximum size of a sort buffer (current maximum:87949312 bytes)
。
有人知道如何解决这个问题吗?