私は、Virtualbox上に3つのスレーブを持つSparkスタンドアロンクラスタを持っています。私のコードはJava上にあり、私の小さな入力データセットではうまく働いています。その入力は100MBほどです。Apache Spark:TaskResultLost(ブロックマネージャからの結果が失われました)エラークラスタのエラー
私は16ギガバイトであることを私の仮想マシンのRAMを設定するが、私は(2GB程度)大きな入力ファイルの私のコードをrunnigたとき、私は私の部分を減らすの処理時間後にこのエラーが出る:
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)が割り当てられます。それは助けにならず、同じエラーが現れました。
いいえ私はspark.driver.maxResultSize
の8GBを試しており、私の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