一,下載kafka
1,官網地址
http://kafka.apache.org/downloads.html
2,下載
[root@localhost source]# wget http://mirror.bit.edu.cn/apache/kafka/2.4.0/kafka_2.13-2.4.0.tgz
說明:架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest
對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/
說明:作者:劉宏締 郵箱: 371125307@qq.com
二,解壓:
[root@localhost source]# tar -zxvf kafka_2.13-2.4.0.tgz
[root@localhost source]# mv kafka_2.13-2.4.0 /usr/local/soft/
三,啟動zookeeper
[root@localhost source]# systemctl status zookeeper
如果狀態不是running則:
[root@localhost source]# systemctl start zookeeper
四,創建日志目錄:
[root@localhost source]# cd /data/logs/ [root@localhost logs]# mkdir kafkalogs [root@localhost logs]# chmod 777 kafkalogs
五,配置kafka的日志目錄
[root@localhost ~]# vi /usr/local/soft/kafka_2.13-2.4.0/config/server.properties
只修改log.dirs的值,設置為自定義的kafka日志目錄
log.dirs=/data/logs/kafkalogs
六,配置環境變量
[root@localhost ~]# vi /etc/profile
說明:增加kafka的所在目錄變量,如下兩行
export KAFKA_HOME=/usr/local/soft/kafka_2.13-2.4.0 export PATH=$PATH:$KAFKA_HOME/bin
七,啟動服務/停止服務
啟動kafka
[root@localhost ~]# /usr/local/soft/kafka_2.13-2.4.0/bin/kafka-server-start.sh -daemon /usr/local/soft/kafka_2.13-2.4.0/config/server.properties
停止kafka
[root@localhost ~]# /usr/local/soft/kafka_2.13-2.4.0/bin/kafka-server-stop.sh
八,測試kafka服務啟動后端口是否綁定:
telnet到默認的端口9092
[root@localhost ~]# telnet localhost 9092 Trying ::1... Connected to localhost. Escape character is '^]'.
九,用systemd管理kafka服務
1,創建service文件
[root@localhost ~]# vi /etc/systemd/system/kafka.service
文件內容為:
[Unit] Description=Apache Kafka server (broker) After=network.target zookeeper.service [Service] Type=forking User=root Group=root Environment=JAVA_HOME=/usr/local/soft/jdk-13.0.2 ExecStart=/usr/local/soft/kafka_2.13-2.4.0/bin/kafka-server-start.sh -daemon /usr/local/soft/kafka_2.13-2.4.0/config/server.properties ExecStop=/usr/local/soft/kafka_2.13-2.4.0/bin/kafka-server-stop.sh #Restart=on-failure [Install] WantedBy=multi-user.target
注意:Environment=JAVA_HOME=/usr/local/soft/jdk-13.0.2
這一行必須有,否則啟動和關停時會報錯
2,測試啟動、停止kafka服務
啟動
[root@localhost ~]# systemctl start kafka
停止
[root@localhost ~]# systemctl stop kafka
十,解決一個問題:
kafka-server-stop.sh不能正常關閉kafka
說明:此問題在fedora30上存在,centos8上面未發現:
修改一下腳本即可:
[root@localhost system]# vi /usr/local/soft/kafka_2.13-2.4.0/bin/kafka-server-stop.sh
把得到進程id的命令改成用jps獲取
修改為:
#PIDS=$(ps ax | grep -i 'kafka\.Kafka' | grep java | grep -v grep | awk '{print $1}') PIDS=$(jps -lm | grep -i 'kafka.Kafka' | awk '{print $1}')
說明:jps最好加上絕對路徑
十一,查看本地已安裝的kafka的版本:
進入到kafka安裝目錄下的libs目錄下面,可以看到kafka_2.13-2.4.0.jar這個文件,
也可以用命令來獲取:
[root@localhost libs]# find ./ -name \*kafka_\* | head -1 | grep -o '\kafka[^\n]*' kafka_2.13-2.4.0.jar
說明:2.13是Scala 的版本,2.4.0就是你kafka的版本
十二,查看本地centos的版本:
[root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core)