Apache Kafka: 分散メッセージング システム
Apache Storm: リアルタイム メッセージ処理
イベント データを処理するリアルタイム データ パイプラインで両方のテクノロジを使用するにはどうすればよいでしょうか?
リアルタイム データ パイプラインに関しては、どちらも同じ仕事をしているように思えます。データ パイプラインで両方のテクノロジを使用するにはどうすればよいでしょうか?
Apache Kafka: 分散メッセージング システム
Apache Storm: リアルタイム メッセージ処理
イベント データを処理するリアルタイム データ パイプラインで両方のテクノロジを使用するにはどうすればよいでしょうか?
リアルタイム データ パイプラインに関しては、どちらも同じ仕事をしているように思えます。データ パイプラインで両方のテクノロジを使用するにはどうすればよいでしょうか?
Kafka と Storm の目的は少し異なります。
Kafkaは、1 秒間に大量のメッセージを処理できる分散型メッセージ ブローカーです。パブリッシュ/サブスクライブ パラダイムを使用し、トピックとパーティションに依存します。Kafka は Zookeeper を使用して、ブローカー間で状態を共有および保存します。したがって、Kafka は基本的に、あるマシンから別のマシンへのメッセージの転送を担当します。
Stormは、スケーラブルでフォールト トレラントなリアルタイム分析システムです (リアルタイムの Hadoop のように考えてください)。ソース (スパウト) からデータを消費し、パイプライン (ボルト) に渡します。トポロジーでそれらを組み合わせることができます。したがって、Storm は基本的に計算ユニット (集計、機械学習) です。
ただし、それらを一緒に使用することもできます。たとえば、アプリケーションは kafka を使用して他のサーバーにデータを送信し、他のサーバーは Storm を使用して計算を行います。
イベントの処理を継続しながら、パターン (Twitter のトレンドを考えてください) を視覚化またはアラートする必要があるユース ケースがある場合、いくつかのパターンがあります。
NiFi を使用すると、カスタム コーディングをほとんど使用せずに、イベントを処理し、永続的なデータ ストアを低い (より低い) バッチ集約で更新できます。
ストーム (多くのカスタム コーディング) により、トレンド イベントにほぼリアルタイムでアクセスできます。
何秒も待つことができれば、kafka から hdfs (Parquet) にバッチ処理して処理できます。
数秒で知る必要がある場合は、NiFi が必要です。おそらく、Storm も必要です。(数千の地球局を監視することを考えてみてください。竜巻警報のために小さな地域の気象条件を確認する必要があります)。