2017-10-25 1 views
0

私は90%の時間で正常に動作するSparkサブミットジョブ(PySpark)を持っていますが、特定のホストでは10%停止します。基本的にタスクは他のホストで完了するまでに数秒かかることがありますが、SparkのUIから特定できるホスト上で停止することがあります。そのような場合、私はプロセスを終了させて​​再実行します。私はこの問題を軽減するために私の選択肢が何であるか疑問に思います。 私のインフラストラクチャは、Amazon AWS上で動作するEC2インスタンス上のスタンドアロンのSpark 2.1クラスタです。私は投機的な実行を考えましたが、私のプロセスはs3に書き込んでいます。私は、s3にとどまるプロセスの投機的実行を指定することは悪い考えです。どんな提案も大歓迎です。単一のワーカーノードはジョブを停止します

+0

私の答えはあなたの仕事の詳細を知らなくても推測に過ぎません。 あなたの問題は具体的には説明されていません.Spark UIのスクリーンショットを含めることができます。正確な意味を示し、この停止しているホストを特定する方法を示します。どのような仕事が失速しているのか。 – lhaferkamp

答えて

1

データが歪んだ場合、つまりGCとOOMが多く発生する可能性のある非常に大量のデータを含むパーティションがある場合、90%のストールは珍しいことではありません。

この場合、データを再分割する。 RangePartitionerを介して解決策になります。

関連する問題