2016-11-02 13 views
3

私は出力をストリーミングスパーク異なるメトリックが意味を理解しようとしていますし、私は処理時間の違いは何であるか少し混乱しています、合計遅延処理対最後のバッチの遅れスパーク合計遅延対ストリーミング処理時間処理遅延

私は、システムが遅れている場合考え出すためのキーメトリックが、そのような「 プロスパークストリーミングなど他の場所として処理時間に言及スパークストリーミングガイドを見てきました

:リアルタイム解析の禅Apache Sparkを使用する "使用について話す総遅延および処理遅延。 Spark Streamingで作成されたすべてのメトリックを説明するドキュメントを見つけることができませんでした。

誰かがこれらの3つの指標が何を意味しているのかを概説することができ、それを理解するのに役立つリソースを教えていただければ幸いです。

答えて

6

各指標を分解しましょう。そのために、のいくつかの任意のソースから与えられた4秒間隔でバッチを読み込み、そして古典的なワード数を計算の基本的なストリーミングアプリケーションを定義してみましょう:

inputDStream.flatMap(line => line.split(" ")) 
      .map(word => (word, 1)) 
      .reduceByKey(_ + _) 
      .saveAsTextFile("hdfs://...") 
  • 処理時間:それは時間をすべてのジョブのバッチを計算し、終わりから終わりにする。我々の場合、これは、flatMapで始まり、saveAsTextFileで終わる単一のジョブを意味し、ジョブがサブミットされたことを前提条件としています。

  • スケジューリング遅延:Spark Streamingスケジューラがバッチのジョブを送信するのにかかる時間。これはどのように計算されますか?前述したように、バッチは4秒ごとにソースから読み込みます。ここで、あるバッチが計算に8秒かかったと仮定します。これは、現在は8 - 4 = 4秒遅れていることを意味し、スケジューリングの遅延を4秒長くします。

  • の総遅延:これはScheduling Delay + Processing Timeです。同じ例の後、私たちが4秒遅れていると、スケジューリングの遅延が4秒で、次のバッチが計算に8秒かかりました。これは今合計遅延が8 + 4 = 12秒になったことを意味します。

作業ストリーミングアプリケーションからのライブ例:下のジョブが処理に11秒かかった

  • :私たちは、ことがわかり

    Streaming application

    。したがって、次のバッチスケジューリングの遅延は11 - 4 = 7秒です。

  • 2番目の行を見てみると、スケジューリングの遅延+処理時間=合計の遅延(この場合は0.9から1に丸めます)7 + 1 = 8が表示されます。
+1

徹底的な回答をいただきありがとうございます。私が探していたものです。 – Zak

+0

@Zakようこそそれが助けてくれてうれしい。 –

+0

@Yuval私は、今までのアプリケーションで使用されているメモリの合計のようなメトリックを得ることができる方法はありますか?他のリアルタイム処理ツールとスパークストリーミングを比較することができます。 – JSR29

関連する問題