本投稿では、下表のように、SparkStreamingでKafkaクラスターを経由してMQTTにコネクトした上で、MQTTに生産されたメッセージを読取ってワードカウントを行う環境を構築してみます。
<システムノード利用状況>
サーバ種類端末状況解説MQTT端末n台メッセージを作成してKafkaに送信する配信ノードKafka Clusterノード3台MQTTからのメッセージを収集してキューイングを行うKafkaノードZookeeper Clusterノード3台(Kafka同居)データ分散管理されるZookeeperノードSpark StandaloneMaster1台Sparkクラスタのリソースを管理するSpark Masterノード
Slave2台Kafkaクラスタからデータを取得しワードアカウントを行うSpark Workerノード
Slave2台Kafkaクラスタからデータを取得しワードアカウントを行うSpark Workerノード
システムの処理の流れとしては、大まかで以下の二つに分けられています。
まず、Kafkaコネクタを利用してMQTTに生産されたメッセージを取得して、Kafkaクラスタで取得したデータをキューイングしておきます。Kafkaは、そまざまな設備に生産された大量のデータを高速に収集してリアルタイム処理しておくことができて、スケーラビリティに優れるシステムなので、MQTT端末が複数台あれば、それぞれの端末に生成されたメッセージをKafkaコネクタに収集しておくことが必要になっています。
つぎ、KafkaStreamingは、一定間隔でKafkaからデータを読み出して、ワードアカウントを行います。
上記ようなデータの流れ環境の作成については、以下の順に記述します。
-
- Step1: Kafka稼働環境作成
-
- Step2: KafkaコネクトMQTT
- Step3: SparkStreamingでデータ取得
☆★☆ 次の文章へ ☆★☆
SparkでKafkaを経由して外部のデータを読取りします「Kafka稼働環境作成」