gpt4 book ai didi

java - Apache Spark : TaskResultLost (result lost from block manager) Error On cluster

转载 作者:可可西里 更新时间:2023-11-01 14:25:32 48 4
gpt4 key购买 nike

我在 Virtualbox 上有一个带有 3 个从节点的 Spark 独立集群。我的代码在 Java 上,它可以很好地处理我的小输入数据集,它们的输入总共大约 100MB。

我将我的虚拟机 RAM 设置为 16GB,但是当我在大输入文件(大约 2GB)上运行我的代码时,在我的 reduce 部分处理数小时后出现此错误:

Job aborted due to stage failure: Total size of serialized results of 4 tasks (4.3GB) is bigger than spark.driver.maxResultSize`

我编辑了 spark-defaults.conf 并为 spark.driver.maxResultSize 分配了更大的容量(2GB 和 4GB)。它没有帮助,出现了同样的错误。

不,我正在尝试 8GB 的​​ spark.driver.maxResultSize 并且我的 spark.driver.memory 也与 RAM 大小 (16GB) 相同。但是我得到这个错误:

TaskResultLost (result lost from block manager)

对此有何评论?我还附上一张图片。

我不知道问题是由 maxResultSize 的大尺寸引起的,还是代码中的 RDD 集合引起的。我还提供了代码的映射器部分以便更好地理解。

enter image description here

JavaRDD<Boolean[][][]> fragPQ = uData.map(new Function<String, Boolean[][][]>() {
public Boolean[][][] call(String s) {
Boolean[][][] PQArr = new Boolean[2][][];
PQArr[0] = new Boolean[11000][];
PQArr[1] = new Boolean[11000][];
for (int i = 0; i < 11000; i++) {
PQArr[0][i] = new Boolean[11000];
PQArr[1][i] = new Boolean[11000];
for (int j = 0; j < 11000; j++) {
PQArr[0][i][j] = true;
PQArr[1][i][j] = true;

最佳答案

通常,此错误表明您正在收集/将大量数据传输到驱动程序中。永远不要这样做。您需要重新考虑您的应用程序逻辑。

此外,您无需修改​​ spark-defaults.conf 即可设置该属性。相反,您可以通过 spark-shellspark-submit 中的 --conf 选项指定此类特定于应用程序的属性,具体取决于您的运行方式这份工作。

关于java - Apache Spark : TaskResultLost (result lost from block manager) Error On cluster,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40297460/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com