centos7部署kafka+zookeeper集群


實驗環境:CentOS Linux release 7.6.1810 (Core)

提前安裝好java環境變量

一、安裝zookeeper

yum install java-1.8.0

1、配置本地hosts

cat /etc/hosts
192.168.121.30 es-node01
192.168.121.31 es-node02
192.168.121.32 es-node03

2、以下所有操作都在3個節點中執行,下載編譯好的zookeeper程序包,並執行以下操作

cd /data
wget http://mirror.bit.edu.cn/apache/zookeeper/stable/apache-zookeeper-3.5.7-bin.tar.gz
tar -xf apache-zookeeper-3.5.7-bin.tar.gz
mv apache-zookeeper-3.5.7-bin zookeeper
mkdir /data/zookeeper/data

3、更改配置文件,每個節點配置一樣

cd /data/zookeeper/conf
more zoo.cfg|grep -Ev "^#|^$"
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
clientPort=2181
server.1=192.168.121.30:2888:3888
server.2=192.168.121.31:2888:3888
server.3=192.168.121.32:2888:3888

4、設置zookeeper集群id,每個節點id不能相同

echo "1" > /data/zookeeper/data/myid
echo "2" > /data/zookeeper/data/myid
echo "3" > /data/zookeeper/data/myid

5、配置開機自啟

[root@es-node01 conf]# cat /usr/lib/systemd/system/zookeeper.service 
[Unit]
Description=zookeeper.service
After=network.target
[Service]
Type=forking
ExecStart=/data/zookeeper/bin/zkServer.sh start
ExecStop=/data/zookeeper/bin/zkServer.sh stop
ExecReload=/data/zookeeper/bin/zkServer.sh restart
[Install]
WantedBy=multi-user.target

6、啟動命令如下

systemctl daemon-reload
systemctl start zookeeper.service
systemctl enbale zookeeper.service

6、查看zookeeper集群是否正常

查看zk的狀態命令(可以看到當前節點是follower還是leader):

bin/zkServer.sh status

一、安裝kafka

1、以下所有操作都在3個節點中執行,下載編譯好的kafka程序包,並執行以下操作

cd /data
wget http://mirror.bit.edu.cn/apache/kafka/2.4.0/kafka_2.13-2.4.0.tgz
scp -r kafka_2.13-2.4.0.tgz root@192.168.121.31:/data
scp -r kafka_2.13-2.4.0.tgz root@192.168.121.32:/data
tar -xf kafka_2.13-2.4.0.tgz
mv kafka_2.13-2.4.0 kafka
mkdir /data/kafka/kafkalogs

2、編輯kafka配置文件

cd /data/kafka/config
[root@es-node01 config]# cat server.properties |grep -Ev "^#|^$"
broker.id=1
listeners=PLAINTEXT://es-node01:9092
host.name=es-node01
advertised.listeners=PLAINTEXT://es-node01:9092
advertised.host.name=es-node01
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka/log
num.partitions=3
delete.topic.enable=true
replica.fetch.max.bytes=5242880
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=3
message.max.byte=5242880
log.cleaner.enable=true
log.retention.hours=72
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.121.30:2181,192.168.121.31:2181,192.168.121.32:2181
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
三個節點除了broker.id=1(broker.id=2/broker.id=3)和主機名es-node01需要修改,避免重復,其他配置信息保持一致即可

3、配置開機自啟

cat /usr/lib/systemd/system/kafka.service 
[Unit]
Description=kafka server daemon
After=kafka.target
[Service]
Type=forking
ExecStart=/data/kafka/bin/kafka-server-start.sh -daemon /data/kafka/config/server.properties
ExecReload=/data/kafka/bin/kafka-server-stop.sh && sleep 2 && /data/kafka/bin/kafka-server-start.sh -daemon /data/kafka/config/server.properties
ExecStop=/data/kafka/bin/kafka-server-stop.sh
Restart=always
[Install]
WantedBy=multi-user.target

4、啟動命令如下

systemctl daemon-reload
systemctl start kafka
systemctl status kafka
systemctl enbale kafka

5、測試集群是否可用

創建一個名稱為SyslogTopic的 3副本3分區的topic
./bin/kafka-topics.sh --create --zookeeper 192.168.121.30:2181,192.168.121.31:2181,192.168.121.32:2181 --replication-factor 3 --partitions 3 --topic SyslogTopic
展示topic
./bin/kafka-topics.sh --list --zookeeper 192.168.121.30:2181,192.168.121.31:2181,192.168.121.32:2181
查看topic詳細信息
./bin/kafka-topics.sh --describe --zookeeper 192.168.121.30:2181,192.168.121.31:2181,192.168.121.32:2181 --topic SyslogTopic
模擬生產者發送消息(該操作在node1節點上執行)
./bin/kafka-console-producer.sh --broker-list 192.168.121.30:9092 --topic SyslogTopic
模擬消費者消費消息(該操作在node2節點上執行)
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.121.30:9092,192.168.121.31:9092,192.168.121.32:9092 --topic SyslogTopic
刪除名稱為SyslogTopic的topic
./bin/kafka-topics.sh --delete --topic SyslogTopic --zookeeper 192.168.121.30:2181,192.168.121.31:2181,192.168.121.32:2181
查看SyslogTopic是否還存在
./bin/kafka-topics.sh --describe --zookeeper 192.168.121.30:2181,192.168.121.31:2181,192.168.121.32:2181 --topic SyslogTopic

參考:https://www.cnblogs.com/longBlogs/p/10340251.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM