Zookeeper和Kafka安裝
1、Windows下的安裝
1.1 安裝JAVA JDK
請參考《Windows環(huán)境下JDK的安裝》
JDK版本:
1.2 安裝ZooKeeper
1、 下載安裝包
http://zookeeper.apache.org/releases.html#download
這里下載的版本為3.4.9
2、 解壓并進(jìn)入ZooKeeper目錄:
3、進(jìn)入C:\zsxsoftware\zookeeper-3.4.9\conf
, 將zoo_sample.cfg
復(fù)制并且重命名為zoo.cfg
4、 打開zoo.cfg
找到并編輯dataDir=C:\\zsxsoftware\\zookeeper-3.4.9\\data
(必須以\\
分割)
5、 添加系統(tǒng)變量:ZOOKEEPER_HOME=C:\zsxsoftware\zookeeper-3.4.9
6、 編輯path系統(tǒng)變量,添加路徑:%ZOOKEEPER_HOME%\bin
7、 在zoo.cfg
文件中修改默認(rèn)的Zookeeper端口(默認(rèn)端口2181
)
8、 打開新的cmd,輸入zkServer
,運行Zookeeper
9、 命令行提示如下:說明本地Zookeeper啟動成功
注意:不要關(guān)了這個窗口。
zookeeper啟動無法找到主類:使用zookeeper3.5.x
的版本會出現(xiàn)你描述的問題,把版本還為3.4.x
后可以解決
該問題。
1.3 安裝Kafka
1、 下載安裝包
http://kafka.apache.org/downloads
注意要下載二進(jìn)制版本,這里下載的版本為2.12-0.11.0.0
2、 解壓并進(jìn)入Kafka目錄
3、 進(jìn)入config目錄找到文件server.properties
并打開
4、 找到并編輯log.dirs=C:\\zsxsoftware\\kafka_2.12-0.11.0.0\\logs
5、 找到并編輯zookeeper.connect=localhost:2181
6、 Kafka會按照默認(rèn),在9092
端口上運行,并連接zookeeper的默認(rèn)端口:2181
7、 進(jìn)入Kafka安裝目錄C:\zsxsoftware\kafka_2.12-0.11.0.0
,打開命令行,輸入:
.\bin\windows\kafka-server-start.bat .\config\server.properties
注意:不要關(guān)了這個窗口,啟用Kafka前請確保ZooKeeper實例已經(jīng)準(zhǔn)備好并開始運行。
1.4 測試
1、 創(chuàng)建主題,進(jìn)入Kafka安裝目錄C:\zsxsoftware\kafka_2.12-0.11.0.0
,打開命令行,輸入:
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
2、查看主題輸入:
.\bin\windows\kafka-topics.bat --list --zookeeper localhost:2181
3、 創(chuàng)建生產(chǎn)者,進(jìn)入Kafka安裝目錄C:\zsxsoftware\kafka_2.12-0.11.0.0
,打開命令行,輸入:
.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test
輸入hello
,回車。
注意:不要關(guān)了這個窗口
4、 創(chuàng)建消費者,進(jìn)入Kafka安裝目錄C:\zsxsoftware\kafka_2.12-0.11.0.0
,打開命令行,輸入:
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
此時,往生產(chǎn)者窗口寫入消息,消費者窗口也能同步的接收到消息
5、查看topic,進(jìn)入Kafka安裝目錄C:\zsxsoftware\kafka_2.12-0.11.0.0
,打開命令行,輸入:
.\bin\windows\kafka-topics.bat --describe --zookeeper localhost:2181 --topic test
1.5 操作日志的處理
kafka啟動后,如果你去查看kafka所在的根目錄,或者是kafka本身的目錄,會發(fā)現(xiàn)已經(jīng)默認(rèn)生成一堆操作日志,
而且會不斷生成不同時間戳的操作日志。
一番研究后,看了啟動的腳本內(nèi)容,發(fā)現(xiàn)啟動的時候是會默認(rèn)使用到這個log4j.properties
文件中的配置,而
在zoo.cfg
是不會看到本身的啟動會調(diào)用到這個,還以為只有那一個日志路徑。在這里配置一下就可以了,找到
config
下的log4j.properties
,將路徑更改下即可,這樣就可以歸檔在一個文件夾下邊了,路徑根據(jù)自己喜
好定義。
這兩個路徑是相互對應(yīng)的。
另外如何消除不斷生成日志的問題,就是同一天的不同時間會不停生成。修改這里,還是在
log4j.properties
中:本身都為trace,字面理解為會生成一堆跟蹤日志,將其改為INFO即可。
2、Linux下的安裝
主要介紹如何在Centos7
下安裝zookeeper以及如何使用。
2.1 安裝JDK
使用zookeeper前,必須先安裝JDK。
JDK的安裝請參考《Linux環(huán)境下JDK的安裝》。
2.2 下載安裝zookeeper
2.2.1 通過官網(wǎng)下載
https://archive.apache.org/dist/zookeeper/
https://downloads.apache.org/zookeeper/
本文中使用3.4.9
版本:zookeeper-3.4.9.tar.gz
2.2.2 解壓
# 解壓
$ tar -xvf zookeeper-3.4.9.tar.gz
2.2.3 修改配置文件
# 1.進(jìn)入配置文件目錄
$ cd conf/
# 2.將zoo_sample.cfg這個文件復(fù)制為zoo.cfg (注意:文件名一定要是zoo.cfg)
$ cp zoo_sample.cfg zoo.cfg
# 3.修改配置文件
$ vim zoo.cfg
# 修改下面兩項的內(nèi)容
dataDir=/home/zhangshixing/kafka/zookeeper-3.4.9/data
clientPort=2181
注意:數(shù)據(jù)存放目錄由自己決定,但是啟動服務(wù)前一定要確保對應(yīng)的目錄存在,不然啟動會失敗。
2.2.4 創(chuàng)建data文件夾
# 創(chuàng)建data目錄
$ mkdir /home/zhangshixing/kafka/zookeeper-3.4.9/data
2.3 啟動zookeeper
2.3.1 進(jìn)入zookeeper下的bin目錄
$ cd /home/zhangshixing/kafka/zookeeper-3.4.9/bin
2.3.2 執(zhí)行啟動命令
$ ./zkServer.sh start
啟動成功后如下:
除了開啟,再備注幾個其他命令:
# 停止
$ ./zkServer.sh stop
# 重啟
$ ./zkServer.sh restart
# 查看狀態(tài)
$ ./zkServer.sh status
雖然這樣可以正常啟動,但是每次都要進(jìn)入到zookeeper的bin目錄下,為了避免麻煩,可以將zookeeper設(shè)置開
機(jī)啟動。
2.3.3 啟動CLI
$ ./zkCli.sh
2.4 設(shè)置zookeeper開機(jī)自動啟動
2.4.1 切換到/lib/systemd/system/目錄,創(chuàng)建自啟動文件
$ cd /lib/systemd/system/
$ vim zookeeper.service
文件內(nèi)容如下:
[Unit]
Description=zookeeperservice
After=network.target
[Service]
# zookeeper路徑
WorkingDirectory=/home/zhangshixing/kafka/zookeeper-3.4.9
# zookeeper執(zhí)行文件
ExecStart=/home/zhangshixing/kafka/zookeeper-3.4.9/bin/zkServer.sh start
User=root
Group=root
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
注意:zookeeper的路徑需要修改成自己的!
2.4.2 設(shè)置自啟動
$ systemctl enable zookeeper.service
2.4.3 啟動服務(wù)
$ systemctl start zookeeper.service
2.4.4 查看啟動狀態(tài)
$ systemctl status zookeeper.service
至此,在Linux下安裝zookeeper就完成了!
2.5 下載安裝kafka
本文主要介紹如何在Centos7下安裝kafka,本文使用的kafka版本是:2.12-0.11.0.0
2.5.1 通過官網(wǎng)直接下載
http://kafka.apache.org/downloads
kafka_2.12-0.11.0.0.tgz
2.5.2 解壓并進(jìn)入kafka目錄
$ tar -xzf kafka_2.12-0.11.0.0.tgz
$ cd kafka_2.12-0.11.0.0/
2.5.3 啟動kafka
1、啟動kafka之前要確保zookeeper已經(jīng)啟動,如果沒有啟動,執(zhí)行以下命令:
$ ./zkServer.sh
2、啟動kafka之前,需要修改kafka配置文件中的zookeeper地址,打開配置文件:
$ vim config/server.properties
修改zookeeper.connect=192.168.94.186:2181
(這里修改成自己安裝的zookeeper地址和端口即可),除了
修改zookeeper服務(wù)地址外,還有其他配置項,如日志儲存路徑、消息的最大持久化時間、端口等等,這里不再贅
述。
zookeeper.connect=192.168.94.186:2181
log.dirs=/home/zhangshixing/kafka/kafka_2.12-0.11.0.0/logs
3、啟動kafka
$ bin/kafka-server-start.sh config/server.properties
2.6 設(shè)置kafka開機(jī)自動啟動
2.6.1 切換到/lib/systemd/system/目錄,創(chuàng)建自啟動文件
$ cd /lib/systemd/system/
$ vim kafka.service
文件內(nèi)容如下:
[Unit]
Description=kafkaservice
After=network.target
[Service]
WorkingDirectory=/home/zhangshixing/kafka/kafka_2.12-0.11.0.0
ExecStart=/home/zhangshixing/kafka/kafka_2.12-0.11.0.0/bin/kafka-server-start.sh config/server.properties
ExecStop=/home/zhangshixing/kafka/kafka_2.12-0.11.0.0/bin/kafka-server-stop.sh
User=root
Group=root
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
2.6.2 設(shè)置自啟動
$ systemctl enable kafka.service
2.6.3 立即啟動服務(wù)
$ systemctl start kafka.service
2.6.4 查看啟動狀態(tài)
$ systemctl status kafka.service
至此,linux安裝kafka就完成了!
3、Docker安裝
3.1 搜索zookeeper鏡像
$ docker search zookeeper
3.2 拉取zookeeper鏡像
$ docker pull wurstmeister/zookeeper
3.3 啟動zookeeper
$ docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
3.4 查看zookeeper啟動信息
$ docker logs -f zookeeper
3.5 搜索kafka鏡像
$ docker search kafka
3.6 拉取kafaka鏡像
$ docker pull wurstmeister/kafka
3.7 啟動kafka
$ docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.94.186:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.94.186:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -e ALLOW_PLAINTEXT_LISTENER=yes -t wurstmeister/kafka
# 在kafka集群中,每個kafka都有一個BROKER_ID來區(qū)分自己
-e KAFKA_BROKER_ID=0
# 配置zookeeper管理kafka的路徑192.168.94.186:2181
-e KAFKA_ZOOKEEPER_CONNECT=192.168.94.186:2181
# 把kafka的地址端口注冊給zookeeper
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.94.186:9092
# 配置kafka的監(jiān)聽端口
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
# 允許使用PLAINTEXT偵聽器
-e ALLOW_PLAINTEXT_LISTENER=yes
3.8 查看kafka啟動信息
$ docker logs -f kafka
3.9 測試
# 進(jìn)入kafka容器
# 創(chuàng)建Replication為1,Partition為1的topic
$ docker exec -it kafka /bin/sh
$ cd /opt/kafka_2.13-2.8.1
$ bin/kafka-topics.sh --create --zookeeper 192.168.94.186:2181 --replication-factor 1 --partitions 1 --topic partopic
# 查看topic的狀態(tài)
$ bin/kafka-topics.sh --describe --zookeeper 192.168.94.186:2181 --topic partopic
# 發(fā)送kafka消息
$ bin/kafka-console-producer.sh --broker-list 192.168.94.186:9092 --topic partopic
# 接收消息
$ docker exec -it kafka /bin/sh
$ cd /opt/kafka_2.13-2.8.1
$ bin/kafka-console-consumer.sh --bootstrap-server 192.168.94.186:9092 --topic partopic --from-beginning
文章來源:http://www.zghlxwxcb.cn/news/detail-742888.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-742888.html
到了這里,關(guān)于Zookeeper和Kafka安裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!