Watcher & Node-RED から Kafka へ
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
Watcher & Node-RED から Kafka へのクイックスタート

Part 1. Kafka とは
Apache Kafka は、高スループットでフォールトトレラントなデータ処理を目的とした分散型イベントストリーミングプラットフォームです。プロデューサーがトピックにメッセージを公開し、コンシューマーがこれらのトピックを購読してデータを処理することで、リアルタイムのデータフィードを可能にします。Kafka はデータパイプラインの構築、リアルタイム分析、さまざまなデータソースの統合に広く使用されています。その堅牢なアーキテクチャにより、スケーラビリティと耐久性が確保され、現代のデータ駆動型アプリケーションにおいて人気の選択肢となっています。
Part 2. Docker で Kafka クラスターを構築する
なぜ Docker を使用するのか?Docker を使用すると、1台のマシン上で複数のコンピュータ環境をシミュレートし、アプリケーションを非常に簡単にデプロイできます。そのため、このプロジェクトでは Docker を使用して環境をセットアップし、効率を向上させます。
Step 1. Docker をダウンロードする
お使いのコンピュータに応じて異なる種類のインストーラーをダウンロードしてください。こちらをクリックして移動します。

コンピュータが Windows の場合、Step 2 を完了するまで Docker をインストールしないでください。
Step 2. WSL(Windows Subsystem for Linux)をインストールする
このステップは Windows 用です。コンピュータが Mac または Linux の場合、このステップをスキップできます。
- 管理者として以下のコードを実行します。

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
こちらからツールをダウンロードし、ダブルクリックしてインストールします。
Microsoft Store に移動して、好きな Linux バージョンを検索してダウンロードします。ここでは Ubuntu をインストールしました。

- Linux をインストールした後、開いてユーザー名とパスワードを設定し、初期化が完了するまで数分待ちます。

- 以下の指示を実行して WSL を使用します。

- WSL をインストールした後、Docker インストーラーをダブルクリックしてインストールします。以下の画像が表示されたら、正常に動作しています。

Step 3. Kafka イメージを構築して実行する
- docker-compose.yml ファイルを作成し、以下のコードをコピーして貼り付けます。

services:
zookeeper:
image: wurstmeister/zookeeper ## イメージ
container_name: zookeeper
ports:
- "2181:2181" ## 外部に公開されるポート番号
kafka:
image: wurstmeister/kafka ## イメージ
container_name: kafka
volumes:
- ./volume:/volume ## マウント場所
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 ## ホストマシンの IP
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 ## Kafka は 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 ## イメージ: Kafka クラスターのオープンソース Web 管理インターフェース
container_name: kafka-manager
environment:
ZK_HOSTS: 127.0.0.1 ## ホストマシンの IP
ports:
- "9009:9000" ## 公開ポート
- コンテナ内で Kafka を実行し、アクセスします。
docker-compose up -d
docker exec -it kafka /bin/bash

- 新しいトピックを作成し、データを生成および消費して 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メッセージモジュールをインストールする
- Manage palette(パレットの管理)をクリックします。まだNode-REDをインストールしていない場合は、こちらをクリックしてください。

- kafka-managerを検索してインストールします。

ステップ 5. Kafkaメッセージモジュールを設定する
- ワークスペースに以下のモジュール(inject, kafka producer, kafka consumer, debug)をドラッグします。

- Kafka Producerをダブルクリックして設定します。ステップ3を実行する際に、新しいブローカーを追加する必要があります。

- Kafka Consumerをダブルクリックして、以下のように設定します。


- 設定が完了したら、Deployボタンをクリックしてデプロイします。

変更を加えた場合は、必ずDeployボタンをクリックしてください。
- 四角いボタンをクリックしてタイムスタンプを送信し、全体のプロセスが正常に動作するかテストします。正常に動作している場合、kafka consumer側でタイムスタンプを受信するはずです。

Part 4. Watcherでタスクを実行する
- まず最初に、以下のビデオに従ってWatcherでタスクを実行する必要があります。詳細を知りたい場合は、こちらをクリックしてください。
- Watcherでタスクを実行した後、このリンクを参照して、WatcherメッセージをNode-REDに送信してください。
Part 5. Kafkaでデータを受信する
- timestampモジュールをOpenStreamおよびfunctionモジュールに置き換え、それらをダブルクリックして設定します。設定後は必ずデプロイしてください。
node.send({ payload: msg.payload.value[0].content });
node.send({ payload: msg.payload.value[0].image_url });

- 私はWatcherでPeople Detection(人物検出)モデルを実行しました。そのため、Watcherが人物を検出するとKafkaにメッセージを送信し、リンクを開くと写真が表示されます。

WatcherからKafkaへのアプリケーションを完了したことをおめでとうございます!Kafkaには探索すべき多くの便利な機能があります。引き続き素晴らしい作業を続け、これからのエキサイティングな可能性に挑戦してください!
技術サポートと製品ディスカッション
私たちの製品をお選びいただきありがとうございます!製品をご利用いただく際にスムーズな体験をしていただけるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。