0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

手を動かして学ぶ!KafkaとPythonによるAWSストリーミングデータ分析入門【30日チャレンジ】- 4日目: Kafkaコンソールツールで基本操作を試す

Posted at

はじめに

「手を動かして学ぶ!KafkaとPythonによるAWSストリーミングデータ分析入門【30日チャレンジ】」4日目: Kafkaコンソールツールで基本操作を試す!です。昨日はDockerを使ってKafka環境をローカルに構築しました。

今日は、この環境を使ってKafkaのコンソールツールに触れ、トピックの作成やデータの送受信といった基本的な操作を実際に体験してみましょう。


1. ターミナルからKafkaコンテナに接続する

まず、Kafkaのコマンドを実行するために、ターミナルからDockerコンテナの内部に入ります。

以下のコマンドを実行してください。

docker exec -it kafka /bin/bash
  • docker exec -it:実行中のコンテナ内でコマンドを実行するための命令です。
  • kafkadocker-compose.ymlで指定したサービス名(コンテナ名)です。
  • /bin/bash:コンテナ内でbashシェルを起動します。

このコマンドが成功すると、ターミナルの表示がコンテナ内部のものに変わります。

root@<container_id>:/opt/bitnami/kafka#

これで、Kafkaのコマンドを実行する準備が整いました。


2. トピックの作成

Kafkaのデータをやり取りするには、まずトピックを作成する必要があります。今回はtest-topicという名前のトピックを作成してみましょう。

以下のコマンドを実行してください。

kafka-topics.sh --create --topic test-topic --bootstrap-server 127.0.0.1:9092
  • kafka-topics.sh:トピック関連の操作を行うためのツールです。
  • --create:トピックを作成するためのオプションです。
  • --topic test-topic:作成するトピック名を指定します。
  • --bootstrap-server:接続するKafkaブローカーのアドレスを指定します。docker-compose.ymlで設定した127.0.0.1:9092を使用します。

トピックが正常に作成されると、「Created topic test-topic.」のようなメッセージが表示されます。

作成したトピックの一覧を確認

以下のコマンドで、作成済みのトピック一覧を確認できます。

kafka-topics.sh --list --bootstrap-server 127.0.0.1:9092

test-topicが表示されていれば成功です。


3. コンソールプロデューサーでデータを送信する

次に、トピックにデータを送信するプロデューサーを動かしてみましょう。

以下のコマンドを実行してください。

kafka-console-producer.sh --topic test-topic --bootstrap-server 127.0.0.1:9092
  • kafka-console-producer.sh:コンソールからデータを送信するためのツールです。

コマンドを実行すると、入力待ちの状態になります。ここでテキストを入力してEnterキーを押すと、そのテキストデータがKafkaのtest-topicに送信されます。

>hello kafka
>this is a test message
>end of message

データの送信を終えるには、Ctrl + Cを押してください。


4. コンソールコンシューマーでデータを受信する

最後に、トピックからデータを読み取るコンシューマーを動かしてみましょう。

別のターミナルウィンドウを開き、再度Kafkaコンテナに接続してください。

docker exec -it kafka /bin/bash

次に、以下のコマンドを実行します。

kafka-console-consumer.sh --topic test-topic --bootstrap-server 127.0.0.1:9092 --from-beginning
  • kafka-console-consumer.sh:コンソールにデータを表示するためのツールです。
  • --from-beginning:過去に送信されたデータも含めて、トピックの先頭からデータを読み取るためのオプションです。これを付けないと、コマンド実行後に送信されたデータしか表示されません。

コマンドを実行すると、先ほどプロデューサーから送信したデータが順番に表示されるはずです。

hello kafka
this is a test message
end of message

データが表示されたら、コンシューマーは新しいデータが送信されるのを待ち続けます。先ほどのプロデューサーウィンドウに戻り、新しいメッセージを送信してみてください。コンシューマーのウィンドウにリアルタイムでデータが表示されるのが確認できるでしょう。


まとめと次回予告

今日は、Kafkaのコンソールツールを使って、トピックの作成、データの送信(プロデューサー)、受信(コンシューマー)という基本的なデータフローを体験しました。

これで、Kafkaがどのようにデータをやり取りしているかのイメージが掴めたはずです。

明日は、いよいよPythonを使って、プログラムからKafkaを操作する方法を学びます。

5日目: PythonからKafkaに接続するライブラリconfluent-kafka-pythonをセットアップ

お楽しみに!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?