2017-06-27 4 views
1

Spark Streamingを直接使用する必要があるユースケースや、Kafka/Flumeとの統合のための場所を教えてもらえますか?スパークストリーミングにKafka/Flumeの統合が必要なのはなぜですか?ストリーミングは、ソースから直接データを消費することはできませんか?

+0

カフカとflumeは人気のあるストリーミングバックエンドです。あなたのソースにコンシューマーを実装するためのAPIもあります。あなたは何を使いたいですか? – maasg

答えて

3

我々はストリーミングが直接

あなたの受信機や消費者の記述に使用できるAPIがありますし、カフカがストリーミングが箱から出してサポートしてスパーク源の中でスパークを使用する必要があるユースケース。 Kafkaは外部ストレージでもあるので、Spark Streamingアプリケーションはのどこかのからデータセットを読み取る必要があるため、「Spark Streamingを直接使用する」ことは一種の誤解です。

ここで、Kafka/Flumeと統合する必要がありますか?

のIoTデバイスは、データのトン毎分を送信している(または秒は、物事を悪化させるために)とカフカはそのペースにデータセットを処理できるショックアブソーバーので、スパークとして機能します。

スパークストリーミング(および構造化ストリーミング)は、バッチ指向でプルベースなので、データをフェッチおよび処理できるようにする必要があります。 Kafka(またはCassandra)は、Sparkを読み込んで処理する前に、データを読み込んで保持するためによく使用されます。彼らはスパークストリーミングの人生をはるかに簡単かつ平和にするだけです。

ストリーミングはデータをソースから直接消費できませんか?

Spark Streamingアプリケーションは、データを直接消費します...常に。ポイントはあなたの質問に「直接」という意味があります。カフカは「源泉から直接」ではないのですか?カフカはソースである(しばしばそうである)。

「カフカの横に」という意味なら、答えは「はい」です。 Kafkaは、Spark Streamingがデータを取得するソースの1つです。スパークストリーミングのInput DStreams and Receivers引用

スパークストリーミングは、内蔵のストリーミングソースの二つのカテゴリーが用意されています。

基本ソース:StreamingContext APIで直接使用できるソース。例:ファイルシステム、およびソケット接続。

先進ソース:Kafka、Flume、Kinesisなどのソースは、余分なユーティリティクラスで利用できます。これらは、リンクセクションで説明したように、余分な依存関係とリンクする必要があります。

以降Custom Sourcesに:

入力DStreamsは、カスタムデータソースから作成することができます。カスタムソースからデータを受け取り、それをSparkにプッシュできるユーザ定義のレシーバ(これは何かを理解するための次のセクションを参照)を実装するだけです。詳細については、カスタムレシーバガイドを参照してください。

+0

ありがとうJacek。なぜカフカが必要なのか、あなたは私に明確なイメージを与えました。 – Rahul

関連する問題