1.问题描述
对kafka扩容增加brokers节点后,在Kakfa Maneger中已经看到新增的brokers节点已加入kafka集群,但是新增的brokers里并没有看到有topic存在。
2.原因
在扩容之前就已经存在的topic并不会自动地分配分区到新节点上,除非扩容后新建的topic。这种情况只能手动将topic分区重新分配到brokers节点上(包括新增的brokers节点),Kafka内部提供了相关的工具来重新分配topic的分区。
3.解决步骤
3.1增加Partitions(分区)
如果扩容后brokers节点数有5个,那么topic的Partitions数至少要等于节点数才能均匀分配在brokers上。若存在Partitions数少于brokers数的topic,就要对其增加Partitions。方法有两个:
■ 在kafka Maneger中选中topic,接着选择Add Partitions.
■ 在服务器上执行命令:./bin/kafka-topics.sh --zookeeper ip:host,ip:host,ip:host --alter --partitions 5 --topic XXX(topic)
这样分区之后,会有一定的概率发生数据倾斜现象,但是这里先不管,之后的步骤中会重新分配分区,数据倾斜问题将会解决。
3.2重新分配Partitions
Partitions增加好之后,就要将其重新均匀分配到各个b