Ubuntu 18.04でApache Kafkaをインストールする方法

技術的概要

Apache Kafkaは、大量のリアルタイムデータを効率的に処理するための分散メッセージブローカーです。Kafkaクラスターはスケーラブルかつフォールトトレラントであり、他のメッセージブローカー(例: ActiveMQやRabbitMQ)よりも高いスループットを持ちます。このチュートリアルでは、Ubuntu 18.04にApache Kafka 2.1.1をインストールする手順を説明します。

準備

  • Ubuntu 18.04サーバーとsudo権限を持つ非rootユーザー。
  • 少なくとも4GBのRAM。
  • OpenJDK 8のインストール。

Kafka専用ユーザの作成

Kafkaがネットワークリクエストを処理できるようにするために、専用ユーザを作成します。

<code><pre>
sudo useradd kafka -m
sudo passwd kafka
sudo adduser kafka sudo
su -l kafka
</pre></code>

Kafkaバイナリのダウンロードと展開

Kafkaバイナリをダウンロードし、展開します。

<code><pre>
mkdir ~/Downloads
curl "https://www.apache.org/dist/kafka/2.1.1/kafka_2.11-2.1.1.tgz" -o ~/Downloads/kafka.tgz
mkdir ~/kafka && cd ~/kafka
tar -xvzf ~/Downloads/kafka.tgz --strip 1
</pre></code>

Kafkaサーバの設定

テーマ削除を許可する設定を行います。

<code><pre>
nano ~/kafka/config/server.properties
# ファイル末尾に以下を追加:
delete.topic.enable = true
</pre></code>

Systemdユニットファイルの作成とKafkaサーバの起動

ZookeeperおよびKafkaサービスのSystemdユニットファイルを作成します。

<code><pre>
sudo nano /etc/systemd/system/zookeeper.service
# 下記内容を入力:
[Unit]
Requires=network.target remote-fs.target
After=network.target remote-fs.target

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

[Install]
WantedBy=multi-user.target

sudo nano /etc/systemd/system/kafka.service
# 下記内容を入力:
[Unit]
Requires=zookeeper.service
After=zookeeper.service

[Service]
Type=simple
User=kafka
ExecStart=/bin/sh -c '/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties > /home/kafka/kafka/kafka.log 2>&1'
ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh
Restart=on-abnormal

[Install]
WantedBy=multi-user.target

sudo systemctl start kafka
sudo journalctl -u kafka
sudo systemctl enable kafka
</pre></code>

インストールのテスト

Kafkaサーバの動作確認を行います。

<code><pre>
~/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic SampleTopic
echo "Hello, World" | ~/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic SampleTopic > /dev/null
~/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic SampleTopic --from-beginning
</pre></code>

タグ: Ubuntu Apache Kafka systemd ZooKeeper OpenJDK

5月28日 09:45 投稿