3

糸モードの大規模な Spark クラスターで長いジョブ (+ 3 時間) を実行しています。spark を実行している VM ワーカーは Google Cloud Dataproc でホストされており、そのほとんどは実行中に破棄できます (コストが低いプリエンプティブル VM)。

これが発生すると、破棄されたワーカーでタスクが失敗し、失敗したワーカーのコンテナー ログに次のエラーが記録されるため、ジョブは失敗します。

Executor is not registered

1000 に設定spark.task.maxFailuresしてみましたが、これはあまり効果的ではないようです。ジョブが終了しても、タスクは自動的に再分散されないようで、この特定のワーカーに割り当てられたタスクの計算はロールするようです初期段階に戻ります。

応答しないエグゼキュータを単純に除外し、それらのタスクを再割り当てする、よりフォールト トレラントな構成を持つ方法はありますか?

要求があれば、ressourcemanager のログ、nodemanager、およびコンテナーのログを含めることもできますが、関連性はないと思います。

4

1 に答える 1