Sparkアプリケーションのメモリが不足していて、クラスタに約30GのRAMが2つあり、入力データサイズが約数百GBです。Apache Sparkのパーティションが少ないうちにメモリが不足する
アプリケーションはSpark SQLジョブであり、HDFSからデータを読み取り、テーブルを作成してキャッシュした後、Spark SQLクエリを実行してその結果をHDFSに書き戻します。
最初にデータを64個のパーティションに分割し、OOMを取得した後、1024個のパーティションを使用してメモリの問題を修正できました。しかし、なぜより多くのパーティションを使用するとOOMの問題を解決するのに役立ちましたか?
各パーティションのサイズは小さいですが、私はRDDをキャッシュしているので(ポストでこれを言及しておきます)、これらのパーティションはメモリに残っているはずです。したがって、パーティションの数に関係なく、メモリ内のデータのサイズは同じでなければなりません – elgoog