centos7搭建zookeeper和kafka集羣,kafka學習二

說明

因爲kafka是把狀態保存到zookeeper上管理的,所以要創建kafka集羣需要先創建zookeeper集羣,
Zookeeper集羣的工作是超過半數才能對外提供服務,比如3臺中超過兩臺則爲超過半數,
允許1臺掛掉。集羣可使用2*n+1臺搭建,所以我們準備三臺虛擬機。

1.環境準備

1.vmware上開啓三臺虛擬機,先在一臺上準備好,然後克隆兩臺。

192.168.211.137
192.168.211.139
192.168.211.140

2.jdk,安裝openjdk1.8

yum install -y java-1.8.0-openjdk

在這裏插入圖片描述

2.zookeeper集羣

1.下載zookeeper
創建文件夾

mkdir /opt/zookeeper
mkdir /opt/zookeeper/zkdata
mkdir /opt/zookeeper/zkdatalog

2.在opt/zookeeper目錄下下載zookeeper,如果不存在自行下載,地址:http://mirrors.hust.edu.cn/apache/zookeeper/

wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
#解壓文件
tar -zxvf zookeeper-3.4.14.tar.gz
#進入zookeeper的conf目錄下,複製一份配置文件
cd /zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo.cfg

3.編輯zoo.cfg

vim zoo.cfg

添加以下內容:

#心跳間隔
tickTime=2000
#其他服務器連接到Leader時,最長能忍受的心跳間隔數:10*2000 = 20秒
initLimit=10
#發送消息時,多長忍受心跳間隔數:5*2000 = 10秒
syncLimit=5
#快照日誌
dataDir=/opt/zookeeper/zkdata
#事務日誌
dataLogDir=/opt/zookeeper/zkdatalog
#zookeeper服務器的端口
clientPort=2181
#對應的server.x=0.0.0.0:2888:3888,其他兩個ip爲另外兩臺機器,克隆虛擬機時需要記得修改成0.0.0.0
server.1=0.0.0.0:2888:3888
server.2=192.168.211.139:2888:3888
server.3=192.168.211.140:2888:3888

4.克隆虛擬機,如果你已經有多臺機器,可跳過此步
在這裏插入圖片描述
5.創建myid文件,對應配置文件裏的server.1、server.2、server.3
進入zookeeper目錄下執行

#server1
echo "1" > /zkdata/myid
#server2
echo "2" > /zkdata/myid
#server3
echo "3" > /zkdata/myid

6.進入zookeeper的bin目錄,啓動zookeeper
三臺機器,都要啓動

./zkServer.sh start

查看狀態:

./zkServer.sh status

在這裏插入圖片描述
停止執行:

./zkServer.sh stop

如果報錯,查看日誌,在bin目錄的zookeeper.out文件

vim zookeeper.out

3.kafka集羣

1.創建文件夾

mkdir /opt/kafka

2.在/opt/kafka下載,鏈接無效請自行下載https://mirrors.aliyun.com/apache/kafka

wget https://mirrors.aliyun.com/apache/kafka/2.3.0/kafka_2.11-2.3.0.tgz

3.解壓

tar -zxvf kafka_2.11-2.3.0

4.修改配置文件

vim /kafka_2.11-2.3.0/config/server.properties

添加如下配置

#分別對應每臺虛擬機1,2,3
broker.id=1
#所在虛擬機ip
listeners=PLAINTEXT://192.168.211.137:9092
#所在虛擬機ip
advertised.listeners=PLAINTEXT://192.168.211.137:9092
#zookeeper集羣地址
zookeeper.connect=192.168.211.137:2181,192.168.211.139:2181,192.168.211.140:2181

5.啓動kafka

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

查看kafka服務是否啓動

jps -l 

如果沒有啓動或者報錯,可以查看日誌文件

tail -fn 100 logs/server.log

6.停止kafka服務

./bin/kafka-server-stop.sh

7.創建topic名爲kafka1,如果創建成功,則kafka搭建成功

./bin/kafka-topics.sh --create --zookeeper 192.168.211.137:2181,192.168.211.139:2181,
192.168.211.140:2181 --replication-factor 3 --partitions 3 --topic kafka1

參數解析:

replication-factor 3  複製3份

partitions 3 創建3個分區

topic 主題名爲kafka1

8.查看所有的topic

bin/kafka-topics.sh --zookeeper 192.168.211.137:2181 --list

在這裏插入圖片描述
9.查看topic的信息

bin/kafka-topics.sh --zookeeper 192.168.211.137:2181 --describe --topic kafka1

在這裏插入圖片描述
10.刪除kafka的topic

bin/kafka-topics.sh --delete --zookeeper 192.168.211.137:2181 --topic kafka1

4.產生消息與消費消息

1.產生消息

單機

bin/kafka-console-producer.sh --broker-list 192.168.211.137:9092 --topic kafka1

集羣

bin/kafka-console-producer.sh --broker-list 192.168.211.137:9092,192.168.211.139:9092,\
192.168.211.140:9092 --topic kafka1

在這裏插入圖片描述
2.消費消息
單機

bin/kafka-console-consumer.sh --bootstrap-server 192.168.211.137:9092 --from-beginning --topic kafka1

集羣,其中 --from-beginning 從第一個消息開始消費

bin/kafka-console-consumer.sh --bootstrap-server 192.168.211.137:9092,192.168.211.139:9092,\
192.168.211.140:9092 --topic kafka1 --from-beginning

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章