首先我們需要的軟體機環境如下
- centos 8
- java
- kafka
- supervisor
首先我們需要先下載下傳 java ,因為 kafka 運作需要 jdk 環境,其次我們需要下載下傳 kafka 的二進制包,最後安裝supervisor 守護 kafka 的程序
- 安裝的主要指令依次如下
cd ~ yum install java wget http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.4.0/kafka_2.12-2.4.0.tgz tar -zxvf kafka_2.12-2.4.0.tgz -C /usr/local cd /usr/local mv kafka_2.12-2.4.0 kafka yum install epel-release yum install supervisor
- 驗證程式是否安裝成功
- 安裝 java 後請使用
若出現如下資訊則說明安裝成功java -version
[[email protected] ~]$ java -version openjdk version "1.8.0_232" OpenJDK Runtime Environment (build 1.8.0_232-b09) OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)
-
安裝 kafka 可以在本機,運作如下指令測試 kafka 是否正常運作
因為 kafka 依托于 zookeeper 運作,最新的 kafka 已經內建了 zookeeper ,是以我們要先運作 zookeeper 在運作 kafka
- 運作 zookeeper
/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties
- 運作 kafka
/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties
- 運作 zookeeper
- supervisor 由于是使用 yum 安裝,使用直接使用
運作systemctl start supervisord.service
- 使用 ps 指令檢查 supervisor 是否正常運作
[[email protected] ~]$ ps -ef|grep supervisor root 946 1 0 13:50 ? 00:00:01 /usr/bin/python3.6 /usr/bin/supervisord -c /etc/supervisord.conf vagrant 5636 5069 0 16:09 pts/0 00:00:00 grep --color=auto supervisor
- 使用 systemctl 指令檢查 supervisor 是否正常運作
[[email protected] ~]$ systemctl status supervisord.service ● supervisord.service - Process Monitoring and Control Daemon Loaded: loaded (/usr/lib/systemd/system/supervisord.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2019-12-24 13:50:13 UTC; 2h 20min ago Process: 788 ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf (code=exited, status=0/SUCCESS) Main PID: 946 (supervisord) Tasks: 111 (limit: 26213) Memory: 689.1M
- 使用 ps 指令檢查 supervisor 是否正常運作
- 安裝 java 後請使用
- 配置 supervisor
- supervisor 的配置檔案放在 /etc/supervisord.conf ,檔案的最後一行告訴我們,程序的配置檔案應該放到 /etc/supervisord.d/*.ini
[include] files = supervisord.d/*.ini
- 因為預設的配置檔案是以 .ini 結尾的,使用我們配置守護程序的配置檔案名需要以 .ini 結尾
touch kafka.ini touch zookeeper.ini
- kafka.ini 和 zookeeper.ini 檔案内容如下
[program:kafka] command=/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties user=root autostart=true autorestart=true startsecs=6 ------------ [program:zookeeper] command=/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties user=root autostart=true autorestart=true startsecs=3
- 配置完後,運作
重新開機 zookeeper 和 kafka 服務sudo supervisorctl reload
- 使用
指令檢視服務是否啟動成功,如下則啟動成功sudo supervisorctl status
[[email protected] supervisord.d]$ sudo supervisorctl status kafka RUNNING pid 4128, uptime 2:40:54 zookeeper RUNNING pid 1186, uptime 2:41:05
- 注意 kafka.ini 的重新開機時間 startsecs 一定要比 zookeeper 大,因為 kafka 依賴 zookeeper ,需要 zookeeper 提前啟動
- supervisor 的配置檔案放在 /etc/supervisord.conf ,檔案的最後一行告訴我們,程序的配置檔案應該放到 /etc/supervisord.d/*.ini