2

私はラムダ アーキテクチャを構築しており、Spark をそのバッチ部分として、定期的に、または終了直後に再起動するか、Spark Streaming ジョブによって再起動を呼び出す必要があります。私は物事を見てきましたが、おそらくSparkコンテキストを理解していませんが、Sparkコンテキストをループに入れることができるかどうかはわかりません. 誰でも簡単なガイダンスを提供できますか? もう 1 つの簡単な質問は、Spark がデータを読み取る HBase にデータが継続的に追加されることを考えると、キャッシングの用途はあるのでしょうか? 助けてくれてありがとう。

編集: SparkListener を実装し、ジョブの終了時に収集を呼び出すと、すべての計算がやり直されますか?

4

2 に答える 2

2

awaitTermination()StreamingContextを呼び出すと、終了せずに実行が継続されます。stop()ストリーミング コンテキストを停止するには、別のスレッドから呼び出す必要があります。

 JavaDStream<T> jsonStrem = streamingContext.receiverStream(receiver);              
 streamingContext.start();
 streamingContext.awaitTermination();

receiverバッチ間隔ごとに呼び出されます

于 2016-03-18T15:34:21.127 に答える
0

思ったより簡単だったようです。Spark では遅延実行が行われているため、while ループは RDD 関数の外では機能しないのではないかと思いました。私は間違っていた。ここの例は、それが可能であることを示唆していました: https://github.com/apache/spark/blob/master/examples/src/main/java/org/apache/spark/examples/JavaPageRank.java

于 2016-03-21T04:54:00.267 に答える