2017-07-03 12 views
1

しばらくしてからスパークストリーミングジョブを終了する方法はありますか?そのため、ドライバは失われず、残りのAPIは完了したとしてジョブを表示します。時間の経過後にSparkストリーミングジョブを停止する

+0

それを止める必要があるならば、おそらくSpark Streamingには適していないでしょう –

+0

私はそれが良い習慣ではないことを知っていますが、メモリ使用量に関するメトリクスが必要なのでDr象完成した仕事 – JSR29

答えて

1

awaitTerminationOrTimeout(timeout: Long)のタイムアウト機能をtimeoutの値で選択すると、タイムアウト後にメインプログラムの実行が再開します。

その後、検査のためにスパークコンテキストを維持するために、他の待機機能が必要になります。

ような何か:別の方法として

// create streaming context 
// do dstream stuff 
streamingContext.awaitTerminationOrTimeout(streamingTimeout) 
streamingContext.stop(stopSparkContext = false) 
Thread.sleep(afterStreamingTimeout) // keep alive for some time. 
// the end 

、あなたは、実験のこれらの種類のために、ノートなど、インタラクティブな環境を使用することができます。ここでは、streamingContext.stop(stopSparkContext = false)を発行してコンテキストを手動で停止することができ、ノートブックがアクティブである限り、スパークコンテキストは有効です。 (これは私がプロトタイプに使っているものです)

+0

@ JSR29 PS:インタラクティブな探検の例:https://www.youtube.com/watch?v=q3TjGjffs3g&t=99s(ストリーミングではないが類似している) – maasg

+0

@ JSR29 Spark Streamingによるインタラクティブな調査:https://youtu.be/qxsOjJnwcKQ?t=526 – maasg

関連する問題