【发布时间】:2017-03-10 21:30:54
【问题描述】:
我在 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)
有没有关于这个的cmets?我还包括一个图像。
我不知道问题是否是由maxResultSize 的大尺寸引起的,或者这与代码中的 RDD 集合有关。我还提供了代码的映射器部分,以便更好地理解。
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;
【问题讨论】:
标签: java hadoop apache-spark mapreduce