环境准备
- CentOS:7.0
- JDK:1.8
- ZooKeeper:3.4.6
- Kafka 集群:node-01、node-02、node-03
安装与配置
- SFTP 上传 Kafka 安装包并解压
[root@node-01 ~]# tar -zxvf kafka_2.13-2.7.0.tgz -C apps/
[root@node-01 ~]# rm -rf kafka_2.13-2.7.0.tgz
- 配置 Kafka 环境变量
[root@node-01 ~]# vim /etc/profile
#行尾添加
export KAFKA_HOME=/root/apps/kafka_2.13-2.7.0
export PATH=$PATH:$KAFKA_HOME/bin
[root@node-01 ~]# source /etc/profile
- 修改 config/server.properties 配置文件
[root@node-01 ~]# cd /root/apps/kafka_2.13-2.7.0/config/
[root@node-01 config]# vim server.properties
# broker 编号(集群中多个broker 编号设置不同)
broker.id=1
# kafka 对外提供服务地址和端口号
listeners=PLAINTEXT://node-01:9092
# kafka 存放消息(数据)日志文件路径
log.dirs=/root/apps/kafka_2.13-2.7.0/kafka-logs
# kafka 连接的 zookeeper 地址
zookeeper.connect=node-01:2181,node-02:2181,node-03:2181
-
复制 kafka 安装包到 node-02 和 node-03
注:node-02 和 node-03 分别配置修改 broker.id
[root@node-01 ~]# cd /etc
[root@node-01 etc]# scp profile node-02:$PWD
[root@node-01 etc]# scp profile node-03:$PWD
[root@node-01 ~]# cd /root/apps/
[root@node-01 ~]# scp -r kafka_2.13-2.7.0/ node-02:$PWD
[root@node-01 ~]# scp -r kafka_2.13-2.7.0/ node-03:$PWD
[root@node-02 ~]# cd apps/kafka_2.13-2.7.0/config/
[root@node-02 config]# vi server.properties
broker.id=2
listeners=PLAINTEXT://node-02:9092
[root@node-02 ~]# source /etc/profile
[root@node-03 ~]# cd apps/kafka_2.13-2.7.0/config/
[root@node-03 config]# vi server.properties
broker.id=3
listeners=PLAINTEXT://node-03:9092
[root@node-03 ~]# source /etc/profile
-
启动 ZooKeeper 集群
注:要启动 Kafka 集群要先启动 ZooKeeper 集群,因为 Kakfa 需要 ZooKeeper 负责 Kafka 集群元数据的管理、控制器的选举等操作
[root@node-01 ~]# zkCluster.sh start
- 启动 Kafka 集群
[root@node-01 ~]# kafka-server-start.sh /root/apps/kafka_2.13-2.7.0/config/server.properties
[root@node-01 ~]# jps
1431 Kafka
1865 Jps
1325 QuorumPeerMain
[root@node-02 ~]# kafka-server-start.sh /root/apps/kafka_2.13-2.7.0/config/server.properties
[root@node-02 ~]# jps
1431 Kafka
1865 Jps
1325 QuorumPeerMain
[root@node-03 ~]# kafka-server-start.sh /root/apps/kafka_2.13-2.7.0/config/server.properties
[root@node-03 ~]# jps
1431 Kafka
1865 Jps
1325 QuorumPeerMain
创建 kafka 集群批处理脚本 allKafka.sh
Kafka 没有批处理集群脚本,需要自己编写,如下:
[root@node-01 ~]# cd /root/apps/kafka_2.13-2.7.0/bin/
[root@node-01 bin]# vim allKafka.sh
#!/bin/bash
for host in node-01 node-02 node-03
do
if [ ${1} == "start" ];then
echo "${host}:${1}ing....."
ssh $host "source /etc/profile;/root/apps/kafka_2.13-2.7.0/bin/kafka-server-start.sh /root/apps/kafka_2.13-2.7.0/config/server.properties 1>/dev/null 2>&1 &"
fi
if [ ${1} == "stop" ]; then
echo "${host}:${1}ing....."
ssh $host "source /etc/profile;/root/apps/kafka_2.13-2.7.0/bin/kafka-server-stop.sh 1>/dev/null 2>&1 &"
fi
done
[root@node-01 bin]# chmod +x allKafka.sh