Kafka需要借助zookeeper来存储cluster,brokers,consumer等。在搭建Kafka集群时要确保已经搭建了zookeeper集群,zookeeper搭建详情可参考:http://t.csdnimg.cn/0kemE
一. Kafka安装包下载
Kafka安装包下载,清华大学镜像站:Index of /dist/kafka/3.0.0 (apache.org)http://archive.apache.org/dist/kafka/3.0.0/
二. Kafka安装步骤
上传安装包 kafka_2.12-3.0.0.tgz 到目录自己的安装目录下,这里是 /home/zxa/software目录下
1. 解压安装包:tar -zxvf kafka_2.12-3.0.0.tgz
2. 重命名解压后的目录:mv kafka_2.12-3.0.0 kafka
3. 配置环境变量:vim ~/.bash_profile ,添加以下内容:
执行 source ~/.bash_profile 使其生效
4. 创建存放Kafka的log文件的目录
切换目录至kafka下:cd /home/zxa/software/kafka
5. 配置server.properties文件
文件在目录kafka下面的config目录中
#配置server.properties
#文件内容:只需配置如下几项即可
broker.id=0
log.dirs=/home/zxa/software/kafka/kafka-logs
#HadoopMaster为主节点主机名,HadoopSlave1和HadoopSlave2分别为两个从节点主机名
zookeeper.connect=HadoopMaster:2181,HadoopSlave1:2181,HadoopSlave2:2181/kafka
group.initial.rebalance.delay.ms=0
6. 分发kafka和配置文件 .bash_profile 到其它节点
#分发到从节点HadoopSlave1
scp -r /home/zxa/software/kafka zxa@HadoopSlave1:/home/zxa/software
#分发到从节点HadoopSlave2
scp -r /home/zxa/software/kafka zxa@HadoopSlave2:/home/zxa/software
#分发 .bash_profile 到从节点HadoopSlave1
scp -r ~/.bash_profile zxa@HadoopSlave1:~/
#分发 .bash_profile 到从节点HadoopSlave2
scp -r ~/.bash_profile zxa@HadoopSlave2:~/
注意:broker.id不能重复
在从节点中HadoopSlave1中将broker.id改为1,HadoopSlave2中broker.id改为2
三. 启动Kafka集群
启动Kafka集群需要先启动zookeeper集群
启动zookeeper集群执行命令:zkServer.sh , 依次启动HadoopMaster,HadoopSlave1,HadoopSlave2
如何配置了一键启动脚本,可以在主节点一次性启动三台节点的zookeeper,编写zookeeper一键启动脚本可参考 :http://t.csdnimg.cn/lWsX9
启动Kafla集群, 同样需要依次启动HadoopMaster,HadoopSlave1,HadoopSlave2:
/home/zxa/software/kafka/bin/kafka-server-start.sh -daemon /home/zxa/software/kafka/config/server.properties
四. 编写Kafka集群一键启动脚本
为方便启动和关闭集群,我们可以编写一个脚本文件
vim kfk
1. 在文件kfk中写入如下内容:
#!/bin/bash
kafka_start() {
for i in HadoopMaster HadoopSlave1 HadoopSlave2
do
echo " --------启动 $i Kafka-------"
ssh $i "source /home/zxa/.bash_profile; /home/zxa/software/kafka/bin/kafka-server-start.sh -daemon /home/zxa/software/kafka/config/server.properties"
done
}
kafka_stop() {
for i in HadoopMaster HadoopSlave1 HadoopSlave2
do
echo " --------关闭 $i Kafka-------"
ssh $i "source /home/zxa/.bash_profile; /home/zxa/software/kafka/bin/kafka-server-stop.sh"
done
}
case $1 in
"start")
kafka_start
;;
"stop")
kafka_stop
;;
"restart")
kafka_stop
kafka_start
;;
*)
echo "Input Args Error..."
echo "$0 [start|stop|restart]..."
;;
esac
2. 完成后赋予kfk文件执行权限:
chmod +x kfk
3. 将文件kfk放到目录/home/zxa/software/kafka/bin目录下
4. 一键启动Kafka
kfk start