原文链接:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools#Replicationtools-2.PreferredReplicaLeaderElectionTool
这工具做了啥?
为了支持replication功能,每一个partition可以有多个replica。一个partition的replica列表称为"assigned replicas"。在这个列表中的第一个replica称为"preferred replica"。当创建topic/partitions时,Kafka要确保所有的topic的"preferred replica"要平均的分布在Kafka集群中。在理想的场景中,一个partition的leader应该是"preferred replica"。这保证了leadership带来的负载可以在整个集群中进行均衡。然而,如果有broker shutdown了(比如controlled shutdown,crash,机器故障)的话,那么leadership负载就不均衡了(imbalance)。此工具就是用来在整个集群中恢复leadership的均衡。下面是此工具的操作步骤:
1,此工具更新ZK的路径 "admin/preferred_replica_election",写入一个topic的partition的列表,说明哪些partition的leader需要进行变化。
2,controller对上面说的那个路径进行监听,当数据更新时进行触发,controller会从ZK中读取相应的数据。
3,对于每一个topic的partition,controller先获得preferred replica(就是assigned replicas列表中的第一个replica),如果这个preferred replica不是leader,controller则向preferred replica所在的那个broker发送一个请求,使之成为partition的leader。
注意此工具仅更新ZK上的对应路径上的数据并退出。controller则异步的把某个partition的leadershipi转移到preferred replica。
如何使用此工具?
bin/kafka-preferred-replica-election.sh --zookeeper localhost:12913/kafka
--path-to-json-file topicPartitionList.json
其中--zookeeper是必填的,--path-to-json-file是可选的,此参数提供了内容为json的文件,其中包含了topic的partition列表。如果没有提供此参数,此工具查询ZK,并得到集群中的所有的topic的partition。此工具在更新ZK路径"/admin/preferred_replica_election"之后就退出了。下面是一个json文件的例子:
{ "partitions": [ {"topic": "topic1", "partition": "0"}, {"topic": "topic1", "partition": "1"}, {"topic": "topic1", "partition": "2"}, {"topic": "topic2", "partition": "0"}, {"topic": "topic2", "partition": "1"}, ] }
FAQ
如果preferred replica不在ISR中会发生什么?
如果preferred replica不在ISR中,controller转移leadership的时会失败。这会确保不会造成数据丢失。当之后又重新出现在in-sync中,那么此工具会再一次运行把leadership转移给它。
在运行此工具后,如果确认所有的partition的leadership成功转移到preferred replica
ListTopicCommand是一个很好的工具,提供了集群中的所有topic的一个overview。对于每一个topic的partition,显示了该partition的leader,assigned replicas,和当前的in-sync replica集合。如果leader和assigned replica的第一个replica一致,那么此工具执行成功,否则,可能必须重新运行一次。
相关推荐
**Kafka Tool 2.0.7 在 Linux 系统中的使用详解** Kafka Tool 是一款功能强大的 Apache Kafka 管理工具,适用于监控、管理、以及数据迁移等任务。在 Linux 系统中,我们可以方便地利用此工具进行各种 Kafka 相关的...
**Kafka Tool 连接 Kafka 工具详解** 在大数据处理和实时流处理领域,Apache Kafka 是一个不可或缺的组件,它作为一个分布式的消息中间件,提供高效、可扩展且可靠的发布订阅服务。为了方便管理和操作 Kafka 集群,...
Kafka Tool 2.0.4是一款专为Kafka设计的强大的客户端工具,尤其适用于Mac操作系统。它提供了一种直观且可视化的界面,让用户能够轻松地连接到Kafka服务并进行各种操作,包括但不限于管理Topic、监控集群状态以及进行...
kafkaTool工具是kafka的一个监控工具,可以监控kafka的集群健康情况
1、图形化界面可以直观地查看 Kafka 的 Topic 里的内容 2、自由设置 Kafka 数据展示格式 3、使用 Kafka Tool 创建/删除 Topic 4、使用 Kafka Tool 模拟发送 Messages
《Kafkatool 2.0.9:跨平台的高效 Kafka 管理利器》 Kafkatool 2.0.9 是一个强大的命令行工具,专为 Apache Kafka 设计,支持 Windows、macOS 和 Linux 操作系统。这款工具提供了一套全面的命令,使得管理员和...
**Kafka Tool:高效管理...总的来说,Kafka Tool是Kafka管理员和开发者的得力助手,它简化了与Kafka交互的过程,提高了工作效率,是管理复杂Kafka集群不可或缺的工具之一。无论是日常运维还是问题排查,都能从中受益。
本文将围绕标题和描述中提到的两种Kafka工具——kafkatool-64bit.exe和kafka-eagle-bin-1.4.6.tar.gz进行详细介绍,帮助读者理解它们的功能和用途。 首先,我们来看kafkatool-64bit.exe,这是一个开箱即用的Kafka...
kafkatool 国内可能下载不了,搞32 64位的都压缩在一起了Kafka Tool 2.0.7( 32\64) To download the Kafka UI Tool for your operating system, use the links below. All versions of Kafka Tool come with a ...
7. **安全支持**:如果Kafka集群启用了SASL/SSL或Kerberos等安全机制,Kafka Tool也能很好地与之兼容,确保管理操作的安全性。 8. **命令行集成**:虽然Kafka Tool提供了一个直观的UI,但它也支持通过命令行执行...
To download the Kafka UI Tool for your operating system, use the links below. All versions of Kafka Tool come with a bundled JRE with the exception of the Linux version. For Linux, you must have Java ...
kafka的开源客户端连接工具,简单易用,业内公认好用。使用教程网上众多,方便快速入门,使用门槛低,kafka的开源客户端连接工,kafka的开源客户端连接工,kafka的开源客户端连接工,kafka的开源客户端连接工
**KafkaTool 2.0.7:一款强大的Kafka管理工具** KafkaTool是一款针对Apache Kafka设计的高效、易用的图形化管理工具,版本2.0.7专为Kafka 0.11及更高版本提供支持。在这款工具的帮助下,用户可以便捷地进行各种操作...
kafkatool客户端工具,查询kafka中的信息。
《Kafkatool_64bit:一款强大的Kafka可视化工具》 Kafkatool_64bit是一款专为64位操作系统设计的Kafka管理工具,它以其直观的界面和丰富的功能,使得管理和监控Apache Kafka集群变得轻而易举。这款工具的主要目标是...
**Kafka工具详解——Kafkatool** Kafka作为一个分布式流处理平台,广泛应用于大数据实时处理和消息传递。然而,管理Kafka集群和操作其组件(如topics、partitions、offsets等)可能会变得复杂,这时就需要一些可视...
《Kafka GUI管理工具——KafkaTool2深度解析》 在大数据实时处理领域,Apache Kafka以其高吞吐、低延迟的特性,成为了消息队列和流处理平台的首选。然而,对于Kafka的管理和运维,如果没有合适的工具,可能会变得...
而为了更好地管理和监控Kafka集群,开发者们通常会依赖于一些工具,其中之一就是Kafka Tool。本文将详细介绍Kafka Tool 2.0.9版本的功能特性及其在Kafka集群管理中的应用。 Kafka Tool是一款强大的开源工具,专为...
**Kafka Tool for Mac: 管理与使用Apache Kafka集群的理想选择** Kafka Tool是一款专为Apache Kafka设计的强大管理工具,尤其适用于Mac用户。它提供了直观的图形用户界面(GUI),使得对Kafka集群的操作变得简单易...
【Kafka Tool 1.0.3】是一个专为管理和监控Apache Kafka集群设计的强大工具,尤其适用于使用0.10及更早版本的Kafka。这个版本提供了64位的可执行程序,包括Windows(kafkatool_64bit.exe)和Mac OS X(kafkatool.dmg...