私はkafka connectとspark streamingを使ってelasticsearchに挿入し、BI用ユースケースにkibanaを使って視覚化したいと思いますが、どこから始めたらいいですか?これらのテクノロジを使用してプロジェクトを作成すると、実装のロジックを理解できない場合には非常に役に立ちます。spark-streamin kafka connectとelk stack
答えて
大きなデータパイプラインがあります。それを行う方法はたくさんあります。考えられるアーキテクチャはLogstash->Kafka->Spark->Elasticsearch
です。
可能なシナリオ
基本的にLogstashは、Sparkストリーミングで消費される、カフカにログを転送します。このシナリオでは、Logstashによってサーバーから新しい生成ログを収集し、Kafkaにログを配信し、Sparkストリーミングによってほぼリアルタイムで処理し、Kibanaで更なる仮想化のためにElasticsearchに格納します。
Logstash
Logstashは、同時に多数のソースからのデータを摂取オープンソース、サーバ側のデータ処理パイプラインでそれを変換し、その後、出力多数に送信します。ログアウトにはinput pluginsがたくさんあります。たとえば、ファイル入力プラグインを使用して、ファイルからログを取得することができます。また、logstashにはoutput pluginsが多数あります。しかしあなたの注意を必要とするものはkafka output pluginです。
カフカ
Apacheのカフカは、伝統的なメッセージブローカーを置き換えるために設計された分散型パブリッシュ・サブスクライブ・メッセージングシステムです。 Kafkaは、メッセージング、リアルタイムWebサイトのアクティビティの追跡、分散アプリケーションの操作メトリクスの監視、多数のサーバーからのログ集約、データベースの状態変更が記録され、順序付けされるイベントソーシング、分散システムが同期するログをコミットする失敗したシステムからデータを復元します。私の使用例では、kafkaはログの集約に使用されます。
このguideストリーミング
スパークは、ストリーミングジョブの最初の部分を実装するためにあなたを導く必要があります。これは、スパークを使用してカフカからストリーミング形式でリアルタイムでデータを取得することを意味します。 2番目の部分(受信したデータをElasticsearchに送信)では、Elasticsearch support for Apache Sparkを使用できます。
スパークストリーミングを使用して、スパークとElasticsearchをリンクする良い例もあります:https://github.com/pochi/spark-streaming-kafka-sample/blob/master/src/main/scala/pochi/spark/streaming/Elastic.scala。しかし、おそらく技術の変更のためにいくつかのことを更新する必要があります。
Elasticsearch - Kibana
最後のステップは簡単です。お互いに通信するには、ElasticsearchとKibanaを設定する必要があります。その後、木場のインデックスパターンを設定してデータをロードし、あなたの意思決定を行います。その詳細については、documentation online
お返事ありがとうございました –
もう一度お悔やみ申し訳ありません。私はkafkaの代わりにredisを使用できますか?カフカはこのユースケースにもっと適しています –
レディスは、その記憶と様々な機能性に関してカフカとは少し違っています。その中核をなすRedisは、高性能データベース、キャッシュ、およびメッセージブローカーとして使用できるインメモリデータストアです。これは、リアルタイムのデータ処理に最適です。つまり、ストレージと処理にプライマリメモリを使用するため、ディスクベースのKafkaよりもはるかに高速になります。 Redisのインメモリストアの唯一の問題は、長期間に渡って大量のデータを保存できないことです。さらに、レディスはカフカのように並列性の概念を持っていません。 –