1

我设置了一个 Flink 集群,配置如下:

工作经理 任务管理器数量:2 任务管理器

org.apache.flink.graph.library.ConnectedComponents当我在具有 400 万条边和 1,750,000 个顶点且并行度为 2 的图上运行连接组件算法 ( ) 时,我得到了这个异常:

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) at org.apache.flink.runtime.taskmanager.Task.run(Task.java:703) at java.lang.Thread.run(Thread.java:748) 原因:java.io。 IOException: 线程 'SortMerger 读取线程' 由于异常而终止:记录超出排序缓冲区的最大大小(当前最大值:87949312 字节)。at 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) 记录超过了排序缓冲区的最大大小(当前最大值: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) 记录超过了排序缓冲区的最大大小(当前最大值: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)有足够的内存段。

有谁知道如何解决这个问题?

4

0 回答 0