Ubuntu20.04にApacheKafkaをインストールする方法

Apache Kafkaは、Apache SoftwareFoundationによって開発されたオープンソースの分散イベントストリーミングプラットフォームです。 これはScalaとJavaプログラミング言語で書かれています。 Kafkaは、Javaをサポートする任意のプラットフォームにインストールできます。

このチュートリアルでは、Ubuntu 20.04 LTSLinuxシステムにApacheKafkaをインストールするためのステップバイステップのチュートリアルについて説明しました。 また、Kafkaでトピックを作成し、プロデューサーノードとコンシューマーノードを実行する方法も学習します。

前提条件

Ubuntu 20.04Linuxシステムへのsudo特権アカウントアクセスが必要です。

ステップ1-Javaのインストール

Apache Kafkaは、プラットフォームでサポートされているすべてのJavaで実行できます。 UbuntuシステムでKafkaをセットアップするには、最初にJavaをインストールする必要があります。 ご存知のように、Oracle javaは現在市販されているため、オープンソースバージョンのOpenJDKを使用しています。

以下のコマンドを実行して、公式PPAからシステムにOpenJDKをインストールします。

sudo apt update 
sudo apt install default-jdk

現在アクティブなJavaバージョンを確認します。

java --version  openjdk version "11.0.9.1" 2020-11-04 OpenJDK Runtime Environment (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04) OpenJDK 64-Bit Server VM (build 11.0.9.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)

ステップ2–最新のApacheKafkaをダウンロードする

公式からApacheKafkaバイナリファイルをダウンロードします ダウンロード ウェブサイト。 近くのミラーを選択してダウンロードすることもできます。

wget http://www-us.apache.org/dist/kafka/2.7.0/kafka_2.13-2.7.0.tgz

次に、アーカイブファイルを抽出します

tar xzf kafka_2.13-2.7.0.tgz
mv kafka_2.13-2.7.0 /usr/local/kafka

ステップ3–Systemdユニットファイルの作成

次に、ZookeeperおよびKafkaサービス用のsystemdユニットファイルを作成する必要があります。 これは、Kafkaサービスを簡単に開始/停止するのに役立ちます。

まず、Zookeeperのsystemdユニットファイルを作成します。

vim /etc/systemd/system/zookeeper.service

そして、次のコンテンツを追加します。

[Unit]
Description=Apache Zookeeper server
Documentation=http://zookeeper.apache.org
Requires=network.target remote-fs.target
After=network.target remote-fs.target

[Service]
Type=simple
ExecStart=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
ExecStop=/usr/local/kafka/bin/zookeeper-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

ファイルを保存して閉じます。

次に、Kafkaサービスのsystemdユニットファイルを作成するには:

vim /etc/systemd/system/kafka.service

以下のコンテンツを追加してください。 必ず正しい設定をしてください JAVA_HOME システムにインストールされているJavaによるパス。

[Unit]
Description=Apache Kafka Server
Documentation=http://kafka.apache.org/documentation.html
Requires=zookeeper.service

[Service]
Type=simple
Environment="JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64"
ExecStart=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
ExecStop=/usr/local/kafka/bin/kafka-server-stop.sh

[Install]
WantedBy=multi-user.target

ファイルを保存して閉じます。

systemdデーモンをリロードして、新しい変更を適用します。

systemctl daemon-reload

ステップ4–KafkaおよびZookeeperサービスを開始する

まず、ZooKeeperサービスを開始してから、Kafkaを開始する必要があります。 systemctlコマンドを使用して、単一ノードのZooKeeperインスタンスを開始します。

sudo systemctl start zookeeper

次に、Kafkaサーバーを起動し、実行ステータスを表示します。

sudo systemctl start kafka
sudo systemctl status kafka

UbuntuでのKafkaサービス

全部終わった。 Kafkaのインストールは正常に完了しました。 このチュートリアルの一部は、Kafkaサーバーの操作に役立ちます。

ステップ5–Kafkaでトピックを作成する

Kafkaは、それを処理するための複数のビルド済みシェルスクリプトを提供します。 まず、単一のレプリカを持つ単一のパーティションで「testTopic」という名前のトピックを作成します。

cd /usr/local/kafka
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic testTopic

Created topic testTopic.

レプリケーション係数は、作成されるデータのコピーの数を示します。 単一のインスタンスで実行しているため、この値を1のままにします。

データを分割するブローカーの数としてパーティションオプションを設定します。 単一のブローカーで実行しているため、この値を1に保ちます。

上記と同じコマンドを実行して、複数のトピックを作成できます。 その後、以下のコマンドを実行すると、Kafkaで作成されたトピックを確認できます。

bin/kafka-topics.sh --list --zookeeper localhost:2181

[output]
testTopic

または、トピックを手動で作成する代わりに、存在しないトピックが公開されたときにトピックを自動作成するようにブローカーを構成することもできます。

ステップ6–Kafkaでメッセージを送受信する

「プロデューサー」は、Kafkaにデータを入力するプロセスです。 Kafkaには、ファイルまたは標準入力から入力を受け取り、それをメッセージとしてKafkaクラスターに送信するコマンドラインクライアントが付属しています。 デフォルトのKafkaは、各行を個別のメッセージとして送信します。

プロデューサーを実行してから、コンソールにいくつかのメッセージを入力してサーバーに送信しましょう。

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic testTopic

>Welcome to kafka
>This is my first topic
>

このコマンドを終了するか、この端末を実行したままにして、さらにテストすることができます。 次のステップで、Kafkaコンシューマープロセスへの新しいターミナルを開きます。

ステップ7–Kafkaコンシューマーの使用

Kafkaには、Kafkaクラスターからデータを読み取り、メッセージを標準出力に表示するコマンドラインコンシューマーもあります。

bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic testTopic --from-beginning

Welcome to kafka
This is my first topic

ここで、別の端末でKafkaプロデューサー(ステップ#6)をまだ実行している場合。 そのプロデューサー端末にテキストを入力するだけです。 コンシューマー端末にすぐに表示されます。 以下のKafkaの生産者と消費者のスクリーンショットを参照してください。

結論

このチュートリアルは、UbuntuシステムにApacheKafkaサービスをインストールして構成するのに役立ちました。 さらに、Kafkaサーバーで新しいトピックを作成し、ApacheKafkaを使用してサンプルの本番プロセスとコンシューマープロセスを実行する方法を学びました。

Hope this helps!

Source link