虚拟机软件:VirtualBox
Linux 发行版本:Ubuntu 20.04.4
虚拟机核心数:1 core
虚拟机内存:2 GB
JDK 版本:1.8.0_202
ZK 版本:3.8.0
Kafka 版本:3.2.0
集群规划实验机搭建
| node01 | node02 | node03 |
|---|---|---|
| zk | zk | zk |
| kafka | kafka | kafka |
$ vim /etc/profile # 拷贝以下内容 export ZK_HOME=/opt/zookeeper-3.8.0 export PATH=$PATH:$JAVA_HOME/bin:$ZK_HOME/bin $ xsync $ZK_HOME $ xsync /etc/profile修改 zoo.cfg
$ cd $ZK_HOME $ mkdir zkData $ cd conf $ mv zoo_sample.cfg zoo.cfg $ vim zoo.cfg dataDir=/opt/zookeeper-3.8.0/zkData server.1=node01:2888:3888 server.2=node02:2888:3888 server.3=node03:2888:3888 $ xsync /opt/zookeeper-3.8.0/conf/zoo.cfg
配置 myid:填写上面 server.x 中对应的数字 x,如:1、2、3。每个机子都不一样
$ vim /opt/zookeeper-3.8.0/zkData/myidZK 集群启动
# 启动 $ xcall zkServer.sh start # 关闭 $ xcall zkServer.sh stop # 状态 $ xcall zkServer.sh statusKafka 集群部署 Kafka 环境变量
$ vim /etc/profile # 拷贝以下内容 export KAFKA_HOME=/opt/kafka-3.2.0 export PATH=$PATH:$JAVA_HOME/bin:$ZK_HOME/bin:$KAFKA_HOME/bin $ xsync $KAFKA_HOME $ xsync /etc/profile配置 server.properties
$ vim $KAFKA_HOME/config/server.properties
############################# Server Basics ############################# # broker 全局唯一编号,不能重复 broker.id=0 ############################# Socket Server Settings ############################# # 网络请求线程数量 num.network.threads=3 # IO 线程数量 num.io.threads=8 # 发送套接字缓冲区大小 socket.send.buffer.bytes=102400 # 接受套接字缓冲区大小 socket.receive.buffer.bytes=102400 # 请求套接字缓冲区大小 socket.request.max.bytes=104857600 ############################# Log Basics ############################# # kafka 日志路径 log.dirs=/tmp/kafka-logs # 该 broker 上分区数量 num.partitions=1 # 恢复和清理 data 下数据的线程数量 num.recovery.threads.per.data.dir=1 ############################# Internal Topic Settings ############################# # topic 副本个数 offsets.topic.replication.factor=1 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 ############################# Log Retention Policy ############################# # 文件保留最长时间 log.retention.hours=168 # 单文件大小上限 log.segment.bytes=1073741824 # 检查过期数据间隔 log.retention.check.interval.ms=300000 ############################# Zookeeper ############################# # 配置 zk,及元数据存储位置 zookeeper.connect=node01:2181,node02:2181,node03:2181/kafka # 连接 ZK 超时时间 zookeeper.connection.timeout.ms=18000 ############################# Group Coordinator Settings ############################# group.initial.rebalance.delay.ms=0
$ xsync $KAFKA_HOME/config/server.properties
注意:每个机子上的,broker.id 要不一样,node01 ~ node03 依次为 1、2、3
Kafka 集群启动# 启动 $ xcall kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties # 关闭 $ xcall kafka-server-stop.sh
注意:停止 Kafka 集群时,一定要等 Kafka 所有节点进程全部停止后再停止 Zookeeper 集群。因为 Zookeeper 集群当中记录着 Kafka 集群相关信息,Zookeeper 集群一旦先停止,Kafka 集群就没有办法再获取停止进程的信息,只能手动杀死 Kafka 进程了。
检验$ xcall jps # 出现以下结果,说明 zk 和 kafka 集群部署且启动成功 ---------------- node01 ---------------- 8629 Jps 7990 QuorumPeerMain 8457 Kafka ---------------- node02 ---------------- 8352 Kafka 8515 Jps 7885 QuorumPeerMain ---------------- node03 ---------------- 7686 Kafka 7224 QuorumPeerMain 7851 Jps --------------- complete ---------------



