1.下载
wget https://dlcdn.apache.org/kafka/3.0.0/kafka_2.12-3.0.0.tgz --no-check-certificate
2.解压
tar -zxvf kafka_2.12-3.0.0.tgz -C ../src
2.修改配置
2.1 server.properties
cd kafka/config
vim server.properties
#先暂时只修改,其他保持默认
zookeeper.connect=node001:2181,node002:2181,node003:2181
3.同步文件到其他节点,并创建软连接(为方便使用)
pscp -h /node.list -r kafka_2.12-3.0.0 /opt/src/
pssh -h /node.list -i ls /opt/src/
pssh -h /node.list -i ln -s /opt/src/kafka_2.12-3.0.0 /opt/src/kafka
修改broker.id
vim /opt/src/kafka/config/server.properties
分别修改node002的broker.id=1,node003的broker.id=2
4.配置环境变量并同步到其他节点
vim /root/.bashrc
同步到其他节点并激活
pscp -h /node.list /root/.bashrc /root/
pssh -h /node.list -i source /root/.bashrc
5.编写启动脚本,配置环境变量,并同步到其他节点
5.1编写kafka自带zk的启停脚本
5.1.1 启动zk脚本
注意:kafka自带的Zookeeper程序脚本与配置文件名与原生Zookeeper稍有不同
(base) [root@node001 bin]# cd /home/djin/bin
(base) [root@node001 bin]# vim start-kafka-zk-all
(base) [root@node001 bin]# chmod +x start-kafka-zk-all
(base) [root@node001 bin]# cat start-kafka-zk-all
内容:
#!/bin/bash
for host in node001 node002 node003
do
ssh $host "source ~/.bashrc;$KAFKA_HOME/bin/zookeeper-server-start.sh -daemon $KAFKA_HOME/config/zookeeper.properties &"
echo "$host kafka-zk is running"
done
5.1.2停止zk脚本
(base) [root@node001 bin]# vim stop-kafka-zk-all
(base) [root@node001 bin]# chmod +x stop-kafka-zk-all
(base) [root@node001 bin]# cat stop-kafka-zk-all
#! /bin/bash
for host in node001 node002 node003
do
ssh $host "source ~/.bashrc;$KAFKA_HOME/bin/zookeeper-server-stop.sh -daemon $KAFKA_HOME/config/zookeeper.properties &"
echo "$host kafka-zk is stoped"
done
5.2编写kafka启停脚本
5.2.1启动kafka脚本
(base) [root@node001 bin]# vim start-kafka-all
(base) [root@node001 bin]# chmod +x start-kafka-all
(base) [root@node001 bin]# cat start-kafka-all
#! /bin/bash
for host in node001 node002 node003
do
echo "INFO:starting kafka server on $host"
ssh $host "source ~/.bashrc;$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties & "
done
5.2.1停止kafka脚本
(base) [root@node001 bin]# vim stop-kafka-all
(base) [root@node001 bin]# chmod +x stop-kafka-all
(base) [root@node001 bin]# cat stop-kafka-all
#! /bin/bash
for host in node001 node002 node003
do
ssh $host "source ~/.bashrc;$KAFKA_HOME/bin/kafka-server-stop.sh"
echo "kafka-server on $host is stoped!!!"
done
6.启动
6.1启动
(base) [root@node001 bin]# start-kafka-zk-all
(base) [root@node001 bin]# start-kafka-all
可以看到zk和kafka启动成功
6.2查看server.log
cat /opt/src/kafka/logs/server.log
7.测试
7.1 创建topic
kafka-topics.sh --create --partitions 2 --replication-factor 2 --topic test-topic1 --bootstrap-server node001:9092,node002:9092,node003:9092
7.2查看topic描述
kafka-topics.sh --describe --topic test-topic1 --bootstrap-server node002:9092
7.3生产消息
kafka-console-producer.sh --topic test-topic1 --bootstrap-server node001:9092
7.4消费消息
kafka-console-consumer.sh --topic test-topic1 --from-beginning --bootstrap-server node002:9092