目录
- 一、服务器信息
- 二、启动zookeeper和kafka集群
- 2.1、先启动zookeeper集群
- 2.2、再启动kafka集群
- 三、手动调整分区副本
- 3.1、手动调整分区副本的前提条件
- 3.2、手动调整分区副本的示例需求
- 3.3、手动调整分区副本的示例
一、服务器信息
- 四台服务器
原始服务器名称 原始服务器ip 节点 centos7虚拟机1 192.168.136.27 broker0 centos7虚拟机2 192.168.136.28 broker1 centos7虚拟机3 192.168.136.29 broker2 centos7虚拟机4 192.168.136.30 broker3
二、启动zookeeper和kafka集群
2.1、先启动zookeeper集群
-
启动zookeeper集群
[root@localhost /]# cd /opt/module/zookeeper-3.5.7/bin/ [root@localhost bin]# pwd /opt/module/zookeeper-3.5.7/bin [root@localhost bin]# sh zkServer.sh start
2.2、再启动kafka集群
-
启动kafka集群
[root@localhost bin]# cd /opt/module/kafka-3.0.0/ [root@localhost kafka-3.0.0]# pwd /opt/module/kafka-3.0.0 [root@localhost kafka-3.0.0]# bin/kafka-server-start.sh -daemon config/server.properties [root@localhost kafka-3.0.0]# jps
三、手动调整分区副本
3.1、手动调整分区副本的前提条件
- 在生产环境中,每台服务器的配置和性能不一致,但是Kafka只会根据自己的代码规则创建对应的分区副本,就会导致个别服务器存储压力较大。所有需要手动调整分区副本的存储。
3.2、手动调整分区副本的示例需求
- 创建一个新的topic,4个分区,两个副本,名称为onetopic。将该topic的所有副本都存储到broker0和broker1两台服务器上。(下图中L表示leader,F表示follower)
3.3、手动调整分区副本的示例
-
创建一个新的 topic,名称为 onetopic
[root@localhost kafka-3.0.0]# bin/kafka-topics.sh --bootstrap-server 192.168.136.27:9092 --create --partitions 4 --replication-factor 2 --topic onetopic
-
查看分区副本存储情况,由下图可知:目前分布在broker0、broker1、broker2和broker3的4台服务器上。
[root@localhost kafka-3.0.0]# bin/kafka-topics.sh --bootstrap-server 192.168.136.27:9092 --describe --topic onetopic
-
创建副本存储计划(所有副本都指定存储在 broker0、broker1中)
[root@localhost kafka-3.0.0]# vim increase-replication-factor.json //输入如下内容 {"version":1,"partitions":[{"topic":"onetopic","partition":0,"replicas":[0,1]},{"topic":"onetopic","partition":1,"replicas":[0,1]},{"topic":"onetopic","partition":2,"replicas":[1,0]},{"topic":"onetopic","partition":3,"replicas":[1,0]}] }
-
执行副本存储计划
[root@localhost kafka-3.0.0]# bin/kafka-reassign-partitions.sh --bootstrap-server 192.168.136.27:9092 --reassignment-json-file increase-replication-factor.json --execute
-
验证副本存储计划
[root@localhost kafka-3.0.0]# bin/kafka-reassign-partitions.sh --bootstrap-server 192.168.136.27:9092 --reassignment-json-file increase-replication-factor.json --verify
-
查看分区副本存储情况。由下图可知:已经分布在broker0、broker1的2台服务器上。
[root@localhost kafka-3.0.0]# bin/kafka-topics.sh --bootstrap-server 192.168.136.27:9092 --describe --topic onetopic