本文轉載自【微信公眾號:WalkingCloud,ID:WalkingCloud2018】,經微信公眾號授權轉載,如需轉載與原文作者聯繫
如下圖所示
三臺CentOS7的機器來搭建zookeeper+kafka集群
192.168.31.221 node1 node1.walkingcloud.cn
192.168.31.222 node2 node2.walkingcloud.cn
192.168.31.223 node3 node3.walkingcloud.cn
一、環境搭建
1、三臺機器均修改/etc/hosts
2、配置互信
ssh-keygen
ssh-copy-id root@node2
ssh-copy-id root@node3
如果有必要的話,三臺機器間兩兩互信
3、提前下載JDK,zookeeper,kakfa的相關安裝包,並上傳到/opt目錄
如下圖所示
scp /opt/* root@node2:/opt
scp /opt/* root@node3:/opt
二、每臺機器都安裝JDK環境,並配置好環境變量
1、安裝JDK
rpm -ivh jdk-8u251-linux-x64.rpm
2、配置環境變量vi /etc/profile,將如下三行加到最後
export JAVA_HOME=/usr/java/jdk1.8.0_251-amd64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
3、使環境變量生效source /etc/profile
三、安裝zookeeper,配置zookeeper
1、三個節點均解壓zookeeper安裝包
cd /opt
tar -zxf apache-zookeeper-3.6.0-bin.tar.gz
mv apache-zookeeper-3.6.0-bin zookeeper
cd zookeeper
mkdir data
cd conf
cp zoo_sample.cfg zoo.cfg
2、配置zoo.cfg
vi zoo.cfg
修改日誌保存目錄
dataDir=/opt/zookeeper/data
#server.服務編號=服務地址、LF通信埠、選舉埠
server.221=node1:2888:3888
server.222=node2:2888:3888
server.223=node3:2888:3888
配置同步到node2和node3
scp zoo.cfg root@node2:/opt/zookeeper/conf/
scp zoo.cfg root@node3:/opt/zookeeper/conf/
3、配置/data/myid文件,寫入伺服器ID
node1的id設置為221
node2的id設置為222
node3的id設置為223
4、三臺均修改變量/etc/profile
vi /etc/profile,在最後面加一行
export PATH=$PATH:/opt/zookeeper/bin
然後 source /etc/profile
並驗證zkServer.sh命令是否可以正常調出來
5、三個節點均啟動zookeeper
zkServer.sh start
查看狀態zkServer.sh status
可以看到node1和node2為follower
node3為leader
四、三個節點均安裝kafka,配置kakfa
1、node1上解壓kafka安裝包
cd /opt
tar -zxf kafka_2.13-2.5.0.tgz
mv kafka_2.13-2.5.0 kafka
cd kafka
cd config
cp server.properties server.properties_default
2、創建data目錄
3、修改kakfa配置文件
vi server.properties
1)broker.id
2)log.dir目錄指定
log.dirs=/opt/kafka/data
3)zookeeper連接信息
zookeeper.connect=node1:2181,node2:2181,node3:2181
4、node1將kafka整個目錄進行文件scp同步,同步到node2和node3上
cd /opt/
scp -r kafka root@node2:/opt/
scp -r kafka root@node3:/opt/
然後再去node2,node3上手動修改server.properties中broker.id分為222和223
5、修改環境變量,加入kafkar的bin目錄
vi /etc/profile最後一行添加:/opt/kafka/bin
export PATH=$PATH:/opt/zookeeper/bin:/opt/kafka/bin
source /etc/profile
scp /etc/profile root@node2:/etc
scp /etc/profile root@node3:/etc
在節點node2,node3上source /etc/profile
6、三個節點啟動kafka
kafka-server-start.sh /opt/kafka/config/server.properties
先前臺的方式啟動kakfa-server,後期改用後臺或者服務腳本的方式啟動kafka
7、再開其它會話窗口測試topic
創建topic
kafka-topics.sh --create --zookeeper node1:2181 --partitions 2 --replication-factor 3 --topic yuanfantest
列出topic
kafka-topics.sh --list --zookeeper node1:2181
查看topic描述
kafka-topics.sh --zookeeper node1:2181 --topic yuanfantest --describe
8、測試主題的生產與消費
如下圖所示,利用console在node1上生產,在node3消費的效果
node1上生產:kafka-console-producer.sh --bootstrap-server node1:9092 --topic yuanfantest
node3上消費:kafka-console-consumer.sh --bootstrap-server node3:9092 --topic yuanfantest
本文轉載自【微信公眾號:WalkingCloud,ID:WalkingCloud2018】,經微信公眾號授權轉載,如需轉載與原文作者聯繫