2016-04-10 11 views
5

間の長い遅延だから我々は、データを抽出して、いくつかの広大なデータ変換を行うと、いくつかの異なるファイルに書き込みスパークジョブを実行しています。すべてが正常に実行されていますが、リソース集約的なジョブの終了と次のジョブの開始の間にランダムな広範な遅延が発生しています。スパーク:ジョブ

以下の画像では、我々は、私は次のジョブが午後五時37分02秒の周りにスケジュールすることを期待してる意味し、完了するために15分を要した午前17時22分02秒で予定されていたその仕事を見ることができます。しかし、次の仕事は仕事の成功後+4時間である22:05:59に予定されていた。

、私は次の仕事のスパークUIを掘り下げた場合、それは< 1秒スケジューラの遅延を示しました。だから私はこの4時間の長い遅延がどこから来ているのか混乱している。

enter image description here

(Hadoopの2とスパーク1.6.1)

更新:

を、私は以下のDavidさんの答えはIOのOPSはスパークに扱われるかについてのスポットであることを確認することができますビットです予期しない。 (それは注文考慮および/または他の操作を書き込む前にカーテンの後ろに「収集」ん。基本的に、そのファイルの書き込みに理にかなっている)しかし、私は、ビットI/O時間は、ジョブの実行時間に含まれていないという事実によってdiscomfortedよ。私は、クエリはまだでも、すべてのジョブが成功していると実行されていますが、全くそれに飛び込むことができないとして、あなたがスパークUIの「SQL」タブでそれを見ることができますね。

私はそこに改善するためのより多くの方法があるが、確信している二つの方法は私のために十分であったの下:

  1. は、多くの場合、偽
+0

それだけでスパークUIのバグだろうか?これは完了するのに本当にこの時間がかかりますか? – marios

+0

そうは思われません。私がこのようなリムボー状態でクラスターを捕まえると、文字通り何も起こっていません。 – codingtwinky

+0

15分のジョブが完了した時点でエグゼキュータ/ワーカーの不具合がありましたか?システムが過負荷になっている場合は、OSが限られたシステムリソースのために次のエグゼキュータ/作業者を呼び出すために多大な時間を要した可能性があります。 – marios

答えて

8

I/O操作にparquet.enable.summary-metadataを設定するファイル数を減らしますマスターノードで発生する重大なオーバーヘッドが発生します。この作業は並列化されていないため、かなり時間がかかります。ジョブではないので、リソースマネージャのUIに表示されません。マスターノードによって行われてI/Oタスクのいくつかの例としては、

  • スパークは、多くの場合、マスターノード
  • で発生
  • マスターノードを使用してファイルを移動し、その後、一時的なS3のディレクトリにテキストファイルの読み込みを書きます
  • 寄木細工のファイルを作成する場合、マスターノードは、これらの問題は、糸の設定を微調整したり、コードを再設計することによって解決することができ、スキーマ

をチェックするために、すべてのファイルにポストライトをスキャンします。ソースコードを提供している場合は、問題を特定できる可能性があります。

Discussion of writing I/O Overhead

Discussion of reading I/O Overhead

+0

あなたは私のお気に入りです!私はまだ確認していませんが、私が読んだこととその行動にスポットがあるように見えます。ありがとう! – codingtwinky

関連する問題