前言: 前几天,我通过Kafka自带的 kafka-reassign-partitions.sh 脚本工具,完成了对 topic 分区副本数的增加。其实 kafka-reassign-partitions.sh 不仅可以实现分区副本数的增加,它还可以实现对 topic 分区的分配。 所以对于 topic 分区分配以及分区副本数的增加,本篇小文都会讲到,图文实操,讲解详细,看完别忘了点赞哦...
# limitations under the License.exec$(dirname $0)/kafka-run-class.sh kafka.admin.ReassignPartitionsCommand"$@" 由上可得:kafka-reassign-partitions.sh脚本实际执行kafka-run-class.sh脚本,调用kafka.admin.ReassignPartitionsCommand类 2、ReassignPartitionsCommand类详情 代码语言:javascript 复制 defexecuteAssignment...
方案一:使用kafka-reassign-partitions.sh重分配指令。但缺点是导致再topic充分配的时候导致生产和消费端产生异常,所以不采用。 方案二:先扩副本(之前已经做了扩集群,可以将下线的机器上的topic全部迁移到扩的集群中),再下线机器,再所副本,这样对生产和消费端做到无感知。所以采用方案二。 本篇文章详细讲解方案二的...
bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file partitions-reassignment.json --execute 1. 重分配完成后,可以验证一下操作: bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file new-topic-reassignment.json --verify # output like this:...
我们使用Kafka自带的:kafka-reassign-partitions.sh 工具来重新发布分区,该工具有三种使用模式: generate模式,给定需要重新分配的的Topic,自动生成 reassign plan (不会自动执行) execute模式,根据指定的 reassign plan重新分配 Partition verify模式,验证重新分配Partition是否成功 ...
generate模式,给定需要重新分配的Topic,⾃动⽣成reassign plan(并不执⾏) execute模式,根据指定的reassign plan重新分配Partition verify模式,验证重新分配Partition是否成功 我们将分区3和4重新分布到broker1上,借助 kafka-reassign-partitions.sh⼯具⽣成reassign plan,不过我们先得按照要求定义⼀个⽂件,⾥...
kafka-reassign-partitions.sh exec$(dirname$0)/kafka-run-class.sh kafka.admin.ReassignPartitionsCommand"$@" kafka.admin.ReassignPartitionsCommand main方法中根据opt调用对应的方法,generateAssignment用来生成计划,executeAssignment用来执行计划 defmain(args: Array[String]): Unit = {valopts=validateAndParseArgs(...
另外,kafka-reassign-partitions.sh 分区迁移工具支持分区粒度的迁移,也可以支持整个Topic的迁移。所以在进行集群扩容的时候,不需要迁移所有的Topic。可以迁移某几个Topic或者某几个Topic中的某些分区。这样尽量减少需要搬迁的数据量。 那怎么样找到Top主题呢?
在对kafka集群进行扩缩容时,kafka集群不像Elastic Search或TiDB等分布式系统一样,提供资源自动重新分配的功能。而是通过提供kafka-reassign-partitions.sh这个脚本,把资源的分配任务交给使用者,来达到目的。 当然,如果集群不够智能,在自动处理时,总是表现不如人工,那么kafka的设计是合理的。因为扩缩容并不经常发生;但是如...
kafka并没有提供一个专门的脚本来支持副本的扩缩, 不像kafka-topic.sh脚本一样,是可以扩分区的; 想要对副本进行扩缩,只能是曲线救国了; 利用kafka-reassign-partitions.sh来重新分配副本 2.1 副本扩容 假设我们当前的情况是 3分区1副本,为了提供可用性,我想把副本数升到2; ...