【大数据】 Kafka扩容后如何将Partitions分区分配到新brokers节点上?kafka数据倾斜问题如何解决?

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增加好之后,就要将其重新均匀分配到各个brokers上(包括新增的brokers节点),Kafka提供重新分配分区的工具:kafka-reassign-partitions.sh,它有了3中工作模式:

■ generate模式,给定需要重新分配的t

你可能感兴趣的:(大数据,Kafka,数据倾斜,大数据,kafka扩容)