Skip to main content

Watcher & Node-RED To Kafka クイックスタート

パート1. Kafkaとは

Apache Kafkaは、高スループットで耐障害性のあるデータ処理のために設計された分散イベントストリーミングプラットフォームです。プロデューサーがトピックにメッセージを公開し、コンシューマーがこれらのトピックを購読してデータを処理することで、リアルタイムデータフィードを可能にします。Kafkaは、データパイプラインの構築、リアルタイム分析、および様々なデータソースの統合に広く使用されています。その堅牢なアーキテクチャはスケーラビリティと耐久性を保証し、現代のデータ駆動型アプリケーションにとって人気の選択肢となっています。

パート2. DockerでKafkaクラスターを構築

なぜDockerを使用するのか?Dockerは単一のマシン上で複数のコンピューターの環境をシミュレートし、アプリケーションを非常に簡単にデプロイできるからです。そのため、このプロジェクトではDockerを使用して環境をセットアップし、効率を向上させます。

ステップ1. Dockerをダウンロード

お使いのコンピューターに応じて異なるタイプのインストーラーをダウンロードしてください。こちらをクリックしてジャンプしてください。

tip

お使いのコンピューターがWindowsの場合、ステップ2を完了するまでdockerをインストールしないでください。

ステップ2. WSL(Windows Subsystem for Linux)をインストール

tip

このステップはWindows用です。お使いのコンピューターがMacまたはLinuxの場合、このステップをスキップできます。

  1. 管理者として以下のコードを実行してください。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. こちらからこのツールをダウンロードし、ダブルクリックしてインストールします。

  2. Microsoft Storeに移動して、お好みのLinuxバージョンを検索してダウンロードします。ここではUbuntuをインストールしました。

  1. Linuxをインストールした後、それを開いてユーザー名とパスワードを設定し、初期化のために1分ほど待つ必要があります。
  1. WSLを使用するために以下の指示を実行します。
  1. WSLをインストールした後、dockerインストーラーをダブルクリックしてインストールできます。以下の画像が表示されれば動作しています。

ステップ3. Kafkaイメージをビルドして実行

  1. docker-compose.ymlファイルを作成する場所を見つけて、以下のコードをコピーします。
services:
zookeeper:
image: wurstmeister/zookeeper ## image
container_name: zookeeper
ports:
- "2181:2181" ## Externally exposed port number
kafka:
image: wurstmeister/kafka ## image
container_name: kafka
volumes:
- ./volume:/volume ## Mounting location
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 ## Host machine IP
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 ## Running Kafka is base to zookeeper
KAFKA_ADVERTISED_PORT: 9092
KAFKA_LOG_RETENTION_HOURS: 120
KAFKA_MESSAGE_MAX_BYTES: 10000000
KAFKA_REPLICA_FETCH_MAX_BYTES: 10000000
KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: 60000
KAFKA_NUM_PARTITIONS: 3
KAFKA_DELETE_RETENTION_MS: 1000
kafka-manager:
image: sheepkiller/kafka-manager ## image: open source web manage interface about kafka cluster
container_name: kafka-manager
environment:
ZK_HOSTS: 127.0.0.1 ## host machine IP
ports:
- "9009:9000" ## exposed port
  1. コンテナでKafkaを実行し、その中に入る
docker-compose up -d

docker exec -it kafka /bin/bash
  1. 新しいトピックを作成し、何かを生成して何かを消費します。Kafkaが正常に動作するかテストします。
kafka-topics.sh --create --topic watcher --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1

kafka-console-producer.sh --topic=watcher --broker-list kafka:9092

kafka-console-consumer.sh --bootstrap-server kafka:9092 --from-beginning --topic watcher

Part 3. Node-REDでKafkaメッセージモジュールを実行する

ステップ 4. Kafkaメッセージモジュールをインストールする

  1. Manage paletteをクリックします。Node_REDをまだインストールしていない場合は、こちらをクリックしてください
  1. kafka-managerを検索してインストールします

ステップ 5. Kafkaメッセージモジュールを設定する

  1. これらのモジュール(inject, kafka producer, kafka consumer, debug)をワークスペースにドラッグします
  1. Kafka Producerをダブルクリックして設定します。ステップ 3を実行する際は、新しいブローカーを追加する必要があります。
  1. Kafka Consumerをダブルクリックして以下のように設定します。
  1. 設定が完了したら、Deployボタンをクリックしてデプロイします。
tip

変更を行った場合は、Deployボタンをクリックする必要があります。

  1. 四角いボタンをクリックしてタイムスタンプを送信し、全体のプロセスが動作するかテストします。正常に動作している場合、kafka consumer側でタイムスタンプを受信できるはずです。

Part 4. WatcherでタスクEを実行する

  1. まず最初に、以下の動画に従ってWatcherでタスクを実行する必要があります。詳細についてはこちらをクリックしてください
  1. watcherでタスクの実行が完了したら、このリンクを参照してwatcherメッセージをNode-REDに送信してください。

Part 5. Kafkaでデータを受信する

  1. timestampモジュールをOpenStreamfunctionモジュールに置き換え、ダブルクリックして設定します。Deployすることを忘れないでください。
node.send({ payload: msg.payload.value[0].content });

node.send({ payload: msg.payload.value[0].image_url });
  1. Watcherで人物検出モデルを実行します。そのため、Watcherが人物を検出するとKafkaにメッセージを送信し、リンクを開くと写真を見ることができます。

WatcherからKafkaへのアプリケーションの完成おめでとうございます!Kafkaには探索を待つ有用な機能が豊富にあります。素晴らしい作業を続けて、これから待っているエキサイティングな可能性に飛び込んでください!

技術サポート & 製品ディスカッション

弊社製品をお選びいただきありがとうございます!弊社製品での体験が可能な限りスムーズになるよう、さまざまなサポートを提供いたします。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。

Loading Comments...