【コピペOK】PythonでApache Kafkaを利用する手順【ソースコードあり】

★悩み★
・PythonでApache Kafkaを利用する手順を知りたいな。
・PythonからApache Kafkaにデータを送信する手順を知りたいな。
・PythonでApache Kafkaからデータを取得する手順を知りたいな。



こういった「悩み」に答えます。
 

★本記事の内容★
① PythonでApache Kafkaを利用するための準備手順をご紹介
② PythonからApache Kafkaにデータを送信する(producer)手順をご紹介
③ PythonでApache Kafkaからデータを取得する(consumer)手順をご紹介



これからご紹介する「PythonでApache Kafkaを利用する手順」を実践したことで、筆者は30分以内でPytonでApache Kafkaにデータ送受信することができました。

記事の前半では「PythonでApache Kafkaを利用するための準備手順」を解説します。
記事の後半では「PythonでApache Kafkaにデータを送受信する手順(producerとconsumerの実装手順)」をご紹介します。

この記事を読み終えることで、「PythonからApache Kafkaにデータ送受信する手順」を把握した状態になります。
 

★Apache Kafkaとは★
Apache Kafkaは、複数台のサーバでデータを処理する分散メッセージングシステムです。
下図のように、Apache Kafkaはキューイングで利用されます。
転送されたデータを保持し、保持したデータを別のシステムに送るためにApache Kafkaを使います。

 


「上図の構成(疎結合な構成)を採用することで得られる利点」に関しては、以下の記事をご覧ください。

>> AWSのSQSとは?SQSの特徴や用途(使い方)のまとめ


 

PythonでApache Kafkaを利用するための準備手順

「PythonでApache Kafkaを利用するための準備手順」に関してご紹介します。
 

★PythonでApache Kafkaを利用するための準備★
手順1:Pythonのインストール
手順2:Apache Kafkaのインストールとセットアップ
手順3:PythonでApache Kafkaを利用するためのライブラリをインストール



上記の流れで、PythonでApache Kafkaを利用するための準備ができます。
 

上記の各ステップは、以下の環境で動作確認済みです。
動作確認済み環境:
・CentOS Linux release 7.8.2003 (Core)
・Ubuntu 20.04.3 LTS



以降で、「PythonでApache Kafkaを利用するための準備」の各手順に関してご紹介します。
 

手順1:Pythonのインストール

「手順1:Pythonのインストール」に関してご説明します。
 

PythonでApache Kafkaを利用するためにも、Pythonをインストールする必要があります。



以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。

>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】

>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】

>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照

>> 【環境構築】インストーラーでMacOSにPythonをインストール
 

既にPythonをインストールされている方は、本手順を省略してください。



以上で、「手順1:Pythonのインストール」は完了です。
 

手順2:Apache Kafkaのインストールとセットアップ

「手順2:Apache Kafkaのインストールとセットアップ」に関してご説明します。
 

PythonでApache Kafkaを利用するためにも、Apache Kafkaをインストールする必要があります。


Apache Kafkaのインストールとセットアップ手順に関しては、以下の記事をご覧ください。

>> 【コピペOK】Apache Kafkaをインストールする手順【linux】

 

既にApache Kafkaをインストールされている方は、本手順を省略してください。



以上で、「手順2:Apache Kafkaのインストールとセットアップ」は完了です。
 

手順3:PythonでApache Kafkaを利用するためのライブラリをインストール

「手順3:PythonでApache Kafkaを利用するためのライブラリをインストール」に関してご説明します。
 

PythonでApache Kafkaを利用するためには、「kafka-python」というライブラリが必要です。



「kafka-python」ライブラリをインストールするために、以下のコマンドを順に実行しましょう。

# yum install librdkafka-devel
# pip install kafka-python


以下のコマンドを実行し、「kafka-python」がインストールされたことを確認しましょう。

# pip list | grep kafka-python
kafka-python (2.0.2)

 

「kafka-python」のバージョンが表示された場合、「kafka-python」が正しくインストールできたと判断できます。



以上で、「手順3:PythonでApache Kafkaを利用するためのライブラリをインストール」は完了です。
 

上記3手順で、PythonでApache Kafkaを利用するための準備は完了です。


 

PythonからApache Kafkaにデータを送信する手順【producer】

「PythonからApache Kafkaにデータを送信する(producer)手順」に関してご紹介します。
 

★PythonからApache Kafkaにデータを送信するまでの流れ★
手順1:PythonでApache Kafkaにデータを送信するプログラムを作成
手順2:PythonでApache Kafkaにデータを送信するプログラムを実行



上記の流れで、PythonからApache Kafkaにデータを送信できます。
 

上記の各ステップは、以下の環境で動作確認済みです。
動作確認済み環境:
・CentOS Linux release 7.8.2003 (Core)
・Ubuntu 20.04.3 LTS
・Windows Pro 11



以降で、「PythonからApache Kafkaにデータを送信するまでの流れ」の各手順に関してご紹介します。
 

手順1:PythonでApache Kafkaにデータを送信するプログラムを作成

「手順1:PythonでApache Kafkaにデータを送信するプログラムを作成」に関してご説明します。
 

PythonでApache Kafkaにデータを送信するプログラムを作りましょう。



PythonでApache Kafkaにデータを送信するプログラムは、以下となります。

from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers='localhost:9092')
producer.send('kafka-test-topic', b'hello from python')


上記のプログラムを「python-producer.py」というファイル名で保存しましょう。

以上で、「手順1:PythonでApache Kafkaにデータを送信するプログラムを作成」は完了です。
 

手順2:PythonでApache Kafkaにデータを送信するプログラムを実行

「手順2:PythonでApache Kafkaにデータを送信するプログラムを実行」に関してご説明します。
 

先ほど作成した「python-producer.py」を実行しましょう。



以下のコマンドを実行し、手順1で作成した「PythonでApache Kafkaにデータを送信するプログラム」の動作確認をしましょう。

# python python-producer.py
# echo $?
0

 

echo $?の結果が「0」であれば、正常に「python-producer.py」が動作したと判断できます。



以上で、「手順2:PythonでApache Kafkaにデータを送信するプログラムを実行」は完了です。
 

上記2手順で、PythonからApache Kafkaにデータを送信する(producer)プログラムを作成できました。


 

PythonでApache Kafkaからデータを取得する手順【consumer】

「PythonでApache Kafkaからデータを取得する(consumer)手順」に関してご紹介します。
 

★PythonでApache Kafkaからデータを取得するまでの流れ★
手順1:PythonでApache Kafkaからデータを取得するプログラムを作成
手順2:PythonでApache Kafkaからデータを取得するプログラムを実行



上記の流れで、PythonでApache Kafkaからデータを取得できます。
 

上記の各ステップは、以下の環境で動作確認済みです。
動作確認済み環境:
・CentOS Linux release 7.8.2003 (Core)
・Ubuntu 20.04.3 LTS
・Windows Pro 11



以降で、「PythonでApache Kafkaからデータを取得するまでの流れ」の各手順に関してご紹介します。
 

手順1:PythonでApache Kafkaからデータを取得するプログラムを作成

「手順1:PythonでApache Kafkaからデータを取得するプログラムを作成」に関してご説明します。
 

PythonでApache Kafkaからデータを取得するプログラムを作りましょう。



PythonでApache Kafkaからデータを取得するプログラムは、以下となります。

from kafka import KafkaConsumer
consumer = KafkaConsumer('kafka-test-topic')
for msg in consumer:
  print (msg)


上記のプログラムを「python-consumer.py」というファイル名で保存しましょう。

以上で、「手順1:PythonでApache Kafkaからデータを取得するプログラムを作成」は完了です。
 

手順2:PythonでApache Kafkaからデータを取得するプログラムを実行

「手順2:PythonでApache Kafkaからデータを取得するプログラムを実行」に関してご説明します。
 

先ほど作成した「python-consumer.py」を実行しましょう。



以下のコマンドを実行し、手順1で作成した「PythonでApache Kafkaからデータを取得するプログラム」の動作確認をしましょう。

# python consumer.py
ConsumerRecord(topic='kafka-test-topic', partition=0, offset=4, timestamp=1612956936496, timestamp_type=0, key=None, value=b'hello from python', headers=[], checksum=None, serialized_key_size=-1, serialized_value_size=18, serialized_header_size=-1)

 

上記のように「hello from python」が表示された場合、PythonでApache Kafkaからデータを正常に取得できたと判断できます。



以上で、「手順2:PythonでApache Kafkaからデータを取得するプログラムを実行」は完了です。
 

上記2手順で、PythonでApache Kafkaからデータを取得する(consumer)プログラムを作成できました。


 

【まとめ】PythonでApache Kafkaを利用する手順【ソースコードあり】

今回の記事を通して、「PythonでApache Kafkaを利用する手順」をご紹介することで、以下の悩みを解消しました。
 

★悩み★
・PythonでApache Kafkaを利用する手順を知りたいな。
・PythonからApache Kafkaにデータを送信する手順を知りたいな。
・PythonでApache Kafkaからデータを取得する手順を知りたいな。



PythonでApache Kafkaを利用する手順?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
 

コメント