1. 程式人生 > 其它 >kafka安裝(單機版)

kafka安裝(單機版)

一、安裝kafka(單機版)

因為現在的kafka安裝包都自帶zookeeper,所以如果是安裝本地單機版kafka,不需要額外去安裝zookeeper,使用自帶的就可以了。

1、下載kafka 2.4版本

kafka下載地址:http://kafka.apache.org/downloads.html

# wget https://mirror.bit.edu.cn/apache/kafka/2.4.1/kafka_2.12-2.4.1.tgz
# tar xf kafka_2.12-2.4.1.tgz
# mv kafka_2.12-2.4.1 /apps/kafka

2、修改server.properties檔案

# cd /apps/kafka/
# vim config/server.properties
listeners=PLAINTEXT://:9092
host.name= 172.16.143.115
advertised.listeners=PLAINTEXT://172.16.143.115:9092

3、配置jdk環境

jdk下載地址:https://www.oracle.com/java/technologies/downloads/

# 上傳jdk1.8到伺服器
# 解壓
# mkdir /usr/java
# tar xf jdk-8u162-linux-x64.tar.gz -C /usr/java/
# 配置環境變數
# vim /etc/profile
# jdk1,8
export JAVA_HOME=/usr/java/jdk1.8.0_162
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
 
# kafka
export KAFKA_HOME=/apps/kafka
 
# 重新載入使生效
# source /etc/profile

4、啟動zookeeper

./bin/zookeeper-server-start.sh  -daemon ./config/zookeeper.properties

5、啟動kafka

# ./bin/kafka-server-start.sh -daemon ./config/server.properties

6、加入開機自啟動

# vim /etc/rc.local
# start kafka
/apps/kafka/bin/zookeeper-server-start.sh  -daemon /apps/kafka/config/zookeeper.properties
/apps/kafka/bin/kafka-server-start.sh -daemon /apps/kafka/config/server.properties

7、建立開機啟動服務項

# 建立zookeeper的服務啟動項。jdk與kafka安裝目錄修改為自己的路徑。

# vim /usr/lib/systemd/system/zookeeper.service
[Unit]
Description=Zookeeper service
After=network.target
 
[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/jdk1.8.0_162/bin/"
User=root
Group=root
ExecStart=/data/apps/kafka/bin/zookeeper-server-start.sh  /data/apps/kafka/config/zookeeper.properties
ExecStop=/data/apps/kafka/bin/zookeeper-server-stop.sh
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

建立kafka服務啟動項

# vim /usr/lib/systemd/system/kafka.service
[Unit]
Description=Apache Kafka server (broker)
After=network.target  zookeeper.service
 
[Service]
Type=simple
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/java/jdk1.8.0_162/bin/"
User=root
Group=root
ExecStart=/data/apps/kafka/bin/kafka-server-start.sh  /data/apps/kafka/config/server.properties
ExecStop=/data/apps/kafka/bin/kafka-server-stop.sh
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

重新載入服務啟動項

# systemctl daemon-reload

啟動服務

# 啟動zookeeper
systemctl restart zookeeper.service
# 啟動kafka
systemctl start kafka.service

# 檢視服務狀態
systemctl status zookeeper.service
systemctl status kafka.service

# 開機自啟動
systemctl enable zookeeper.service
systemctl enable kafka.service


二、Php 安裝Kafka擴充套件

方法一:使用之前的remi源直接yum安裝kafka擴充套件。

# 安裝remi源
yum install epel-release -y
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
# 使用remi源安裝kafka擴充套件
yum --enablerepo=remi-php73 install php-rdkafka -y
 
# 檢視是否已經包含改模組了
[root@test-135 kafka]# php -m |grep rdkafka
rdkafka
 
# 重啟php-fpm
systemctl restart php-fpm

在php裡新增訪問kafka的配置,

# vim /apps/web/php/api/dev.php
    'KAFKA' => [
        'host' => '172.16.143.115',
        'port' => 9092,
        'version' => '2.4.1'
    ],
# php easyswoole restart

方法二:也可以用原始碼編譯的方式安裝php擴充套件。

1.安裝librdkafka
git clone https://github.com/edenhill/librdkafka.git
cd librdkafka
./configure
make && make install
 
2.安裝php-rdkafka擴充套件,with-php-config改成自己的php-config路徑
 
 
#git clone https://github.com/arnaud-lb/php-rdkafka.git
wget https://pecl.php.net/get/rdkafka-3.0.3.tgz
tar xf rdkafka-3.0.3.tgz
cd rdkafka-3.0.3/
phpize
./configure --with-php-config=/usr/bin/php-config
make && make install
 
3.修改php.ini檔案,新增
extension = rdkafka.so
 
4.檢視是否安裝成功
php -m |grep rdkafka
 
5.重啟php
# systemctl restart php-fpm


三、配置kafka內外網都可以訪問

預設advertised.listeners是不接受0.0.0.0的配置的,只能填具體的合法的IP地址或域名,所以要想實現kafka內外網都可以訪問,則可以用主機名對映的方式實現。

將advertised.listeners=PLAINTEXT://kafkahost:9092 ,註釋listeners和host.name,然後在內網伺服器將kafkahost對映為內網ip,外網客戶端將kafkahost對映為kafka伺服器的外網IP。

修改配置,註釋host.name和listeners

# vim config/server.properties
#listeners=PLAINTEXT://0.0.0.0:9092
#host.name= 0.0.0.0
advertised.listeners=PLAINTEXT://kafkahost:9092

修改本地hosts檔案,

# vim /etc/hosts
127.0.0.1       kafkahost

在kafka客戶端,對映為內網地址:

# vim /etc/hosts
192.168.x.x       kafkahost

在外網,比如本地,對映為外網地址:

# 編輯 C:\Windows\System32\drivers\etc\hosts
外網IP       kafkahost

用kafka工具連線如下圖:


四、kafka客戶端連線工具kafka Tool

推薦一款kafka視覺化的介面連線工具:kafka Tool

官方下載地址:https://www.kafkatool.com/download.html

選擇自己對應的版本進行下載安裝

填寫相關的連線地址即可連上,在介面操作主題分割槽