Kafka 集群部署

一、集群规划

 h136  h138  h140
 zk     zk     zk
kafka  kafka  kafka

二、下载

https://kafka.apache.org/downloads.html

kafka_2.12-2.3.0:Kafka 由 Scala 编写,2.12 为 Scala 版本,2.3.0 为 Kafka 版本

三、部署

Kafka 集群依赖于 ZooKeeper 集群。ZooKeeper 集群搭建参考:https://www.cnblogs.com/jhxxb/p/10744264.html

# 解压
tar -zxf /opt/kafka_2.12-2.3.0.tgz -C /opt/

# 编辑配置
vim /opt/kafka_2.12-2.3.0/config/server.properties

server.properties

这里主要配置三个:唯一 ID(必须为整数,且要保证每个节点 ID 不一样),数据路径、 Zookeeper 集群地址

# broker 的全局唯一编号,不能重复
broker.id=136
# 开启删除 topic 功能,默认为标记删除
delete.topic.enable=true

# 处理网络请求的线程数量
num.network.threads=3
# 用来处理磁盘 IO 的现成数量
num.io.threads=8
# 发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
# 接收套接字的缓冲区大小
socket.receive.buffer.bytes=102400
# 请求套接字的缓冲区大小
socket.request.max.bytes=104857600

# kafka 运行日志存放的路径,默认日志路径为 logs,这里和默认日志数据分开存放
log.dirs=/opt/kafka_2.12-2.3.0/data

# topic 在当前 broker 上的分区个数
num.partitions=1
# 用来恢复和清理 data 下数据的线程数量
num.recovery.threads.per.data.dir=1
# segment 文件保留的最长时间,超时将被删除
log.retention.hours=168

# 配置连接 Zookeeper 集群地址
zookeeper.connect=h136:2181,h138:2181,h140:2181

配置好后分发到其它机器,这里使用 Rsync,用其它工具也可以,如 SCP 等。

rsync -av /opt/kafka_2.12-2.3.0 h138:/opt/
rsync -av /opt/kafka_2.12-2.3.0 h140:/opt/

最后去每台节点上修改唯一 ID。

配置环境变量,方便启动。

vim /etc/profile

#KAFKA_HOME
export KAFKA_HOME=/opt/kafka_2.12-2.3.0
export PATH=$PATH:$KAFKA_HOME/bin

source /etc/profile

rsync -av /etc/profile h138:/etc/
rsync -av /etc/profile h140:/etc/

四、集群启动和关闭

需要每台节点都去执行启动脚本,Kafka 自己不支持群起。

# 启动
kafka-server-start.sh -daemon /opt/kafka_2.12-2.3.0/config/server.properties

# 关闭
kafka-server-stop.sh stop

每次都去各个节点执行比较麻烦,可以使用脚本。

for i in h136 h138 h140
do
  echo "========== $i =========="
  ssh $i '/opt/kafka_2.12-2.3.0/bin/kafka-server-start.sh -daemon /opt/kafka_2.12-2.3.0/config/server.properties'
done

http://kafka.apache.org/documentation/#quickstart

原文地址:https://www.cnblogs.com/jhxxb/p/11497606.html