まずは要件の確認
kafkaにアクセス
https://kafka.apache.org/
最新版はBinary Downloads:を確認し、"2.13 is recommended:2.13をおすすめ"とかいてある。
今回は2.13のバージョンを利用する。
(重要)要件に▷Apache Kafka supports Java 17◁とあるので、
Java jdk 17のインストールをする。
# dnf install java-17-openjdk-devel
インストール後、javaのバージョンを確認する。
# java -version
openjdk 17.0.2 2022-01-18 LTS
OpenJDK Runtime Environment 21.9 (build 17.0.2+8-LTS)
OpenJDK 64-Bit Server VM 21.9 (build 17.0.2+8-LTS, mixed mode, sharing)
wgetを使用し、URLを貼り付けてkafkaパッケージを/optディレクトリにダウンロードします
# wget https://dlcdn.apache.org/kafka/3.1.0/kafka_2.13-3.1.0.tgz -O /opt/kafka_2.13-3.1.0.tgz
/optディレクトリに移動し、.tarファイルを展開する。
# cd /opt
# tar -xvf kafka_2.13-3.1.0.tgz
シンボリックリンクを作成する
# ln -s /opt/kafka_2.13-3.1.0 /opt/kafka
zookeeperとkafkaサービスの両方を実行する非特権ユーザーを作成し、所有権の設定をします。
# useradd kafka
# chown -R kafka:kafka /opt/kafka
次の内容でユニットファイル/etc/systemd/system/zookeeper.serviceを作成します。
vi /etc/systemd/system/zookeeper.service
[Unit]
Description=zookeeper
After=syslog.target network.target
[Service]
Type=simple
User=kafka
Group=kafka
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
[Install]
WantedBy=multi-user.target
Kafkaの次のユニットファイル/etc/systemd/system/kafka.serviceも同様に編集します。
vi /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
Requires=zookeeper.service
After=zookeeper.service
[Service]
Type=simple
User=kafka
Group=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
[Install]
WantedBy=multi-user.target
新しいユニットファイルを読み取らせるには、systemdをリロードする。
# systemctl daemon-reload
次の順序で新しくサービスを起動する。
# systemctl start zookeeper
# systemctl start kafka
成功すれば次のコマンドを実行した際、statusがactiveになっている。
# systemctl status zookeeper
● zookeeper.service - zookeeper
Loaded: loaded (/etc/systemd/system/zookeeper.service; disabled; vendor pres>
Active: active (running) since Thu 2022-04-07 07:37:49 PDT; 1 day 12h ago
Main PID: 2879 (java)
Tasks: 38 (limit: 23527)
Memory: 121.6M
CGroup: /system.slice/zookeeper.service
mq2879 java -Xmx512M -Xms512M -server -XX:+UseG1GC -XX:MaxGCPauseMil>
# systemctl status kafka
● kafka.service - Apache Kafka
Loaded: loaded (/etc/systemd/system/kafka.service; disabled; vendor preset: >
Active: active (running) since Thu 2022-04-07 07:37:49 PDT; 1 day 12h ago
Main PID: 2880 (java)
Tasks: 73 (limit: 23527)
Memory: 710.4M
CGroup: /system.slice/kafka.service
mq2880 java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=>
that's all