★悩み★
・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を利用する手順は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント