我在Virtualbox上有一個3個從屬的Spark獨立羣集。我的代碼在Java上,並且它與我的小輸入數據集工作良好,它們的輸入總共大約100MB。Apache Spark:TaskResultLost(結果從塊管理器中丟失)集羣上的錯誤
設置我的虛擬機內存爲16GB,但是當我在大的輸入文件運行過程中出現我的代碼(約2GB)我在減少零件加工的小時後出現此錯誤:
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集合。我還提供了更好理解的代碼的映射器部分。
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;
面對類似問題(https://stackoverflow.com/questions/48455547/apache-spark2-0-taskresultlost-result-lost-from-block-manager?noredirect=1#comment83908776_48455547))你是否改變了驅動程序的內存? – user3407267