一、Kafka分布式集群部署
版本的选择
-
0.8.x:老的版本,存在很多问题
-
0.10.x +:消息功能上基本没有问题
-
选择 Kafka_2.12-2.4.1.tgz
-
Kafka:2.4.1
-
Scala:2.12 (Kafka是由Scala语言开发)
下载解压并安装
- 下载地址: http://archive.apache.org/dist/kafka/
- 上传到第一台虚拟机
cd /export/software/
rz
- 解压
tar -zxvf kafka_2.12-2.4.1.tgz -C /export/server/
cd /export/server/kafka_2.12-2.4.1/
mkdir logs
修改配置
- 切换到配置文件目录
cd /export/server/kafka_2.12-2.4.1/config
- 修改server.properties
#21行:唯一的 服务端id
broker.id=0
#60行:指定kafka的日志及数据【segment【.log,.index】】存储的位置
log.dirs=/export/server/kafka_2.12-2.4.1/logs
#123行:指定zookeeper的地址
zookeeper.connect=node1:2181,node2:2181,node3:2181
#在最后添加两个配置,允许删除topic,当前kafkaServer的主机名
delete.topic.enable=true
host.name=node1
- 分发安装包
cd /export/server/
scp -r kafka_2.12-2.4.1 node2:$PWD
scp -r kafka_2.12-2.4.1 node3:$PWD
- 第二台:server.properties
#21行:唯一的 服务端id
broker.id=1
#最后
host.name=node2
- 第三台:server.properties
#21行:唯一的 服务端id
broker.id=2
#最后
host.name=node3
- 添加环境变量
vim /etc/profile
#KAFKA_HOME
export KAFKA_HOME=/export/server/kafka_2.12-2.4.1
export PATH=:$PATH:$KAFKA_HOME/bin
source /etc/profile
二、Kafka的启动与关闭
- Kafka集群的启动与关闭:
- 启动Zookeeper
/export/server/zookeeper-3.4.6/bin/start-zk-all.sh
- 启动Kafka
/export/server/zookeeper-3.4.6/bin/kafka-server-start.sh config/server.properties >>/dev/null 2>&1 &
tips: >>/dev/null 2>&1 &:在后台运行
- 关闭Kafka
bin/kafka-server-stop.sh
- 封装Kafka脚本
- 启动脚本
vim /export/server/kafka_2.12-2.4.1/bin/start-kafka.sh
#!/bin/bash
KAFKA_HOME=/export/server/kafka_2.12-2.4.1
for number in {1..3}
do
host=node${number}
echo ${host}
/usr/bin/ssh ${host} "cd ${KAFKA_HOME};source /etc/profile;export JMX_PORT=9988;${KAFKA_HOME}/bin/kafka-server-start.sh ${KAFKA_HOME}/config/server.properties >>/dev/null 2>&1 &"
echo "${host} started"
done
chmod u+x /export/server/kafka_2.12-2.4.1/bin/start-kafka.sh
- 关闭脚本
vim /export/server/kafka_2.12-2.4.1/bin/stop-kafka.sh
#!/bin/bash
KAFKA_HOME=/export/server/kafka_2.12-2.4.1
for number in {1..3}
do
host=node${number}
echo ${host}
/usr/bin/ssh ${host} "cd ${KAFKA_HOME};source /etc/profile;${KAFKA_HOME}/bin/kafka-server-stop.sh"
echo "${host} stoped"
done
chmod u+x /export/server/kafka_2.12-2.4.1/bin/stop-kafka.sh