Apache Kafkaは、分散ストリーミングプラットフォームです。システム間またはアプリケーション間でデータを取得するためのリアルタイムストリーミングデータパイプラインを構築するのに役立ちます。もう1つの便利な機能は、データのストリームを変換したり、データのストリームに反応したりできるリアルタイムストリーミングアプリケーションです。
このチュートリアルは、Debian 10、Debian 9、Debian8システムにApacheKafkaをインストールするのに役立ちます。
ステップ1–Javaをインストールする
Apache Kafkaを実行するには、Javaが必要でした。システムにJavaがインストールされている必要があります。以下のコマンドを実行して、公式PPAからシステムにデフォルトのOpenJDKをインストールします。
sudo apt update sudo apt install default-jdk
ステップ2–ApacheKafkaをダウンロードする
ApacheKafkaバイナリファイルを公式ダウンロードWebサイトからダウンロードします。近くのミラーを選択してダウンロードすることもできます。
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ユニットファイルを作成します。これは、systemctlコマンドを使用して開始/停止する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
ファイルを保存して閉じます。
次に、次のコマンドを使用してKafkasystemdユニットファイルを作成します。
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サーバーを起動します
KafkaにはZooKeeperが必要だったので、まず、システムでZooKeeperサーバーを起動します。 Kafkaで利用可能なスクリプトを使用して、単一ノードのZooKeeperインスタンスを開始できます。
sudo systemctl start zookeeper
次に、Kafkaサーバーを起動し、実行ステータスを表示します。
sudo systemctl start kafka sudo systemctl status 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 testTopic TecAdminTutorial1 TecAdminTutorial2
または、トピックを手動で作成する代わりに、存在しないトピックが公開されたときにトピックを自動作成するようにブローカーを構成することもできます。
ステップ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プロデューサーとコンシューマーの以下のスクリーンショットを参照してください:
結論
これで、DebianLinuxマシンにKafkaサービスが正常にインストールおよび構成されました。