私は Kafka/Spark-Streaming の経験はあまりありませんが、分析/ダッシュボード用のリアルタイム システムを構築する上でコンボがいかに優れているかについての多くの記事を読みました。誰かがスパークストリーミングだけではできない理由を説明できますか? 言い換えれば、なぜ Kafka はデータ ソースとスパーク ストリーミングの間にあるのでしょうか?
ありがとう
私は Kafka/Spark-Streaming の経験はあまりありませんが、分析/ダッシュボード用のリアルタイム システムを構築する上でコンボがいかに優れているかについての多くの記事を読みました。誰かがスパークストリーミングだけではできない理由を説明できますか? 言い換えれば、なぜ Kafka はデータ ソースとスパーク ストリーミングの間にあるのでしょうか?
ありがとう
Spark を使用してデータを処理するには、Spark でサポートされているさまざまなデータ ソースからデータを提供する必要があります。(または、独自のカスタム データ ソースを作成する必要があります)
静的データの場合、spark は提供します
sc.textFile("FILE PATH") //For reading text file
sc.wholeTextFiles("DIRECTORY PATH") //For reading whole text files in a directory
sqlContext.read.parquet("FILE PATH")
sqlContext.read.json("FILE PATH")
ストリーミングの場合、スパークは次のようなさまざまなソースからのデータをサポートします
Kafka、Flume、Kinesis、Twitter、ZeroMQ、MQTT など
また、Spark は単純なソケット ストリーミングもサポートしており、
val 行 = ssc.socketTextStream("localhost", 9999)
Kafka は、高スループットの分散メッセージング システムです。Kafka の分散動作、スケーラビリティ、およびフォールト トレランスは、他のメッセージング システムよりも優れています。(MQTT、ZMQなど)
質問は、これらのデータ ソースのうち、どれがあなたのものですか? kafka データ ソースを独自のものに置き換えることができます。デフォルトのソースとして MQTT を使用しています。