私はApache NiFiの初心者ですが、これまで読んだチュートリアルでは、kafka= Nifiとの統合について説明しています。どのようにkafka Nifiを補完するものですか?なぜカフカを使用せずにNifiを直接使用してメッセージを発信しないのですか?
注:私が見たすべてのチュートリアルでは、この点について言及していません。
NiFiとKafka=は、NiFiがApache Kafkaのようなメッセージングキューではないという意味で補完されます。逆に、Apache NiFiはデータフロー管理、つまりデータロジスティクスツールです。
Kafka=を介してストリーミングされるメッセージ(JSON形式)があり、メッセージにすべてのフィールドがあるかどうかを確認し、それらが有効かどうかを確認したいHBaseに到着するメッセージ。
ここで、NiFiは次のアプローチを支援します。
ConsumeKafka
プロセッサーがあり、Kafka=ブローカーとグループ名で構成できます。ValidateRecord
を使用して、受信したメッセージがすべて有効かどうかを確認しますPutHBaseRecord
に接続できます要約すると、NiFiは基本的に多くの定型コードを書くことを防ぎます。この場合、スキーマの検証とHBaseへの書き込みを行うカスタムロジック。
Horthonworksコミュニティの質問 に関する興味深い回答を見つけました。完全を期すためにここで共有します。
Apache NiFiとApache Kafkaは、わずかに重複する可能性のある異なるユースケースを持つ2つの異なるツールです。2つのプロジェクトの目的についての私の理解を以下に示します。
NiFiは「データを処理および配信するための使いやすく強力で信頼性の高いシステムです。」
これは、 フローベースのプログラミング を実装する視覚ツール(REST api))であり、さまざまな種類のデータを取得するフローを作成できるようにします。処理中のデータのソース、エンリッチメント、ルーティングなどを実行し、その結果をさまざまな宛先に出力します。監査ログとトラブルシューティングのためにフローを通過しました。
「Apache Kafkaは分散コミットログとして再パブリッシュ/サブスクライブメッセージングです」
パブリッシュ/サブスクライブパターンの分散実装であり、開発者はプログラムを異なる言語で多数のマシンに相互に接続できます。データを処理するためのオールインワンソリューションというよりも、分散コンピューティングのビルディングブロックです。