本投稿では、下表のように、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ノード

システムの処理の流れとしては、大まかで以下の二つに分けられています。
まず、Kafkaコネクタを利用してMQTTに生産されたメッセージを取得して、Kafkaクラスタで取得したデータをキューイングしておきます。Kafkaは、そまざまな設備に生産された大量のデータを高速に収集してリアルタイム処理しておくことができて、スケーラビリティに優れるシステムなので、MQTT端末が複数台あれば、それぞれの端末に生成されたメッセージをKafkaコネクタに収集しておくことが必要になっています。
つぎ、KafkaStreamingは、一定間隔でKafkaからデータを読み出して、ワードアカウントを行います。

上記ようなデータの流れ環境の作成については、以下の順に記述します。

    • Step1: Kafka稼働環境作成

 

    • Step2: KafkaコネクトMQTT

 

    Step3: SparkStreamingでデータ取得

☆★☆ 次の文章へ ☆★☆
SparkでKafkaを経由して外部のデータを読取りします「Kafka稼働環境作成」

bannerAds