• ニュースバナー

サービス

Spark ストリーミング データ クリーニング メカニズム
(I) DStreamとRDD
ご存知のとおり、Spark Streaming の計算は Spark Core に基づいており、Spark Core のコアは RDD であるため、Spark Streaming も RDD に関連している必要があります。ただし、Spark Streaming はユーザーに RDD を直接使用させるのではなく、一連の DStream 概念を抽象化しています。DStream と RDD は包括的な関係であり、Java の装飾パターンとして理解できます。つまり、DStream は RDD の拡張版ですが、動作は RDD と似ています。
DStream と RDD には両方ともいくつかの条件があります。
(1) 同様の変換アクション (map、reduceByKey など) だけでなく、Window、mapWithStated などのいくつかの固有のアクションもあります。
(2) すべてに foreachRDD、count などの Action アクションがあります。
プログラミング モデルは一貫しています。
(B) Spark Streaming における DStream の導入
DStream にはいくつかのクラスが含まれています。
(1) データ ソース クラス (InputDStream、DirectKafkaInputStream など)
(2) 変換クラス、通常は MappedDStream、ShuffledDStream
(3) 出力クラス (通常は ForEachDStream など)
上記より、データの最初 (入力) から最後 (出力) までは DStream システムによって行われます。これは、通常、ユーザーが RDD を直接生成および操作することができないことを意味します。つまり、DStream には RDD を生成および操作する機会と義務があることを意味します。 RDD のライフサイクルを担当します。
言い換えれば、Spark Streaming には、自動クリーンアップ関数。
(iii) Spark Streaming における RDD 生成のプロセス
Spark Streaming における RDD のライフフローは大まかに以下のとおりです。
(1)InputDStream では、受信したデータを DirectKafkaInputStream などの RDD に変換し、KafkaRDD を生成します。
(2) 次に、MappedDStream およびその他のデータ変換を介して、今度は変換用のマップ メソッドに対応する RDD を直接呼び出します
(3) 出力クラスの操作では、RDD が公開されている場合に限り、対応する格納、その他の計算、その他の操作をユーザーに実行させることができます。