Spark メモリの問題
メモリの問題の検証中
メモリの問題により、次のようなエラーメッセージが表示されることがよくあります。
sh
SparkException: Job aborted due to stage failure: Task 3 in stage 0.0 failed 4 times, most recent failure: Lost task 3.3 in stage 0.0 (TID 30) (10.139.64.114 executor 4): ExecutorLostFailure (executor 4 exited caused by one of the running tasks) Reason: Remote RPC client disassociated. Likely due to containers exceeding thresholds, or network issues. Check driver logs for WARN messages.
ただし、これらのエラー メッセージは一般的なものであることが多く、他の問題が原因で発生することもあります。 したがって、メモリの問題が疑われる場合は、コアあたりのメモリを2倍にして問題を確認し、問題に影響を与えるかどうかを確認できます。
たとえば、4 コアでメモリあたり 16 GB のワーカー タイプを使用している場合は、4 コアと 32 GB のメモリを持つワーカー タイプに切り替えてみることができます。 これにより、以前はコアあたり4GBだったコアあたり8GBになります。 ここで重要なのは、メモリに対するコアの比率です。 余分なメモリで失敗するのに時間がかかる場合、またはまったく失敗しない場合は、正しい方向に進んでいることを示す良い兆候です。
メモリを増やすことで問題を解決できるのであれば、素晴らしいです。 たぶんそれが解決策です。 それでも問題が解決しない場合、または追加費用に耐えられない場合は、さらに深く掘り下げる必要があります。
考えられる原因
メモリの問題には多くの潜在的な理由があります。
- シャッフルパーティションが少なすぎる
- 大規模放送
- UDF
PARTITION BY
ステートメントのないウィンドウ関数- スキュー
- ストリーミング状態