`
邢邢色色
  • 浏览: 229916 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Kafka学习之Replication tools之Reassign Partitions Tool

阅读更多

 

原文链接:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools#Replicationtools-6.ReassignPartitionsTool

此工具能做啥?

此工具的作用跟Referred Replica Leader Election工具类似,都是为了平衡集群的负载。但工具不仅为某一个partition从assigned replica中选举一个新的leader,还改变partition的assigned replica,回忆一下,follower需要从leader上fetch数据为了保持同步,因此有时仅仅平衡leadershipi的负载是不够的(还需要考虑follower的负载)。下面是此工具工作的步骤:

 

1,此工具更新ZK的路径"/admin/reassign_partitions",写入一个topic的partition列表和一个new assigned replica列表(如果设置了json文件了的话)。


2,controller监听ZK上的路径。当数据update时被触发,controller从ZK读取更新的topic partition的列表和它们的assigned replicas。


3,对于每一个topic的partition,controller做如下的事情:
3.1. 开始一个新的replicas,由RAR - AR(RAR中存在,AR中不存在的replica)组成(RAR = Reassigned Replicas, AR = original list of Assigned Replicas)。
3.2. 在新的replica跟leader同步之前保持等待状态。
3.3. 如果leader不在RAR中,从RAR选举一个新的leader。
3.4 4. 停止老的replicas,由AR - RAR(AR中存在,RAR中不存在的replica)组成。
3.5. 写入新的AR。
3.6. 从/admin/reassign_partitions删除partition。

 

注意此工具只更新zk并退出,controller异步为partitions reassign replicas。

此工具现在只在0.8分支中提供。

 

如何使用?

警告:此工具在0.8的beta版本释出,并有一些bug,在0.8.1版本中是稳定的。

bin/kafka-reassign-partitions.sh
 
Option                                  Description
------                                  -----------
--broker-list <brokerlist>              The list of brokers to which the
                                          partitions need to be reassigned in
                                          the form "0,1,2". This is required
                                          for automatic topic reassignment.
--execute [execute]                     This option does the actual
                                          reassignment. By default, the tool
                                          does a dry run
--manual-assignment-json-file <manual   The JSON file with the list of manual
  assignment json file path>              reassignments.This option or topics-
                                          to-move-json-file needs to be
                                          specified. The format to use is -
                                        {"partitions":
                                            [{"topic": "foo",
                                              "partition": 1,
                                              "replicas": [1,2,3] }],
                                        "version":1
                                        }
--topics-to-move-json-file <topics to   The JSON file with the list of topics
  reassign json file path>                to reassign.This option or manual-
                                          assignment-json-file needs to be
                                          specified. The format to use is -
                                        {"topics":
                                            [{"topic": "foo"},{"topic": "foo1"}],
                                        "version":1
                                        }
--zookeeper <urls>                      REQUIRED: The connection string for
                                          the zookeeper connection in the form
                                          host:port. Multiple URLS can be
                                          given to allow fail-over.

注意此工具默认运行在dry-run(预演)模式下,并不会初始化partiton movement。只有打开--execute选项,此工具才会开始执行。

 

集群扩展

在0.8版本中,此工具可以用来扩展(expand)一个已存在的集群。集群扩展涉及到引入了新的broker id。通常当为一个集群中新增一个broker时,它们不会从现存的topic接收到任何数据,直到使用这个工具把现存的topics/partitions assign到新的broker上。此工具使用2个选项来让批量转移topic到新的broker变得更简单,这2个选项分别为:a)要转移的topics;b)新增的broker的列表。使用这2个选项,此工具能自动的确定这些topic的partitions的位置。下面的例子把2个topic(foo1,foo2)转移到新增的broker(id为5,6,7)。

 

nnarkhed$ ./bin/kafka-reassign-partitions.sh --topics-to-move-json-file topics-to-move.json --broker-list "5,6,7" --execute
 
nnarkhed$ cat topics-to-move.json
{"topics":
     [{"topic": "foo1"},{"topic": "foo2"}],
     "version":1
}

 

选择一些partition进行转移

此工具也可以有选择的把一些特定的partition的一些replica转移到一个特定的broker。如果你有一个不负载不均衡的集群,你可以使用这个工具来有选择的转移一些partition。在这种模式下,此工具使用一个文件,文件包含了要转移的partition的列表,还有转移后replica分布的broker id列表。

下面的例子把一个partition的replica从broker 1,2,3转移到了broker 1,2,4上。

 

nnarkhed$ ./bin/kafka-reassign-partitions.sh --manual-assignment-json-file partitions-to-move.json --execute
 
nnarkhed$ cat partitions-to-move.json
{"partitions":
             [{"topic": "foo",
               "partition": 1,
               "replicas": [1,2,4] }],     
分享到:
评论

相关推荐

    kafkatool 连接kafka工具

    - **分区分配**: `reassign-partitions` 命令可以手动调整主题分区的分配,优化数据分布和容错能力。 - **ACL 管理**: 支持创建、查询和删除 ACL(Access Control List),确保集群的安全性。 - **Brokers 状态检查*...

    Kafka Tool 2.0.7(linux系统)

    1. **集群管理**: Kafka Tool 可以列出所有连接的 Kafka 集群,查看集群的详细信息,如 brokers、topics、partitions 等。 2. **主题管理**: 创建、删除、修改 Kafka 主题,包括设置副本数量、分区数等参数。 3. *...

    Kafka Tool 2.0.4.zip

    1. **连接与集群管理**:用户可以通过该工具连接到多个Kafka集群,查看集群的基本信息,如 brokers、topics、partitions 和 replicas 的状态。它支持Zookeeper和SSL加密连接,确保数据传输的安全性。 2. **Topic...

    kafkatool 2.0.9 Windows & maxOS & Linux

    例如,`kafkatool create topic -b broker_list -t topic_name -p num_partitions` 将创建一个新的主题。 **五、最佳实践** 使用 Kafkatool 进行 Kafka 管理时,需要注意以下几点最佳实践: - 在调整分区和消费组...

    Kafka 可视化工具(Kafka Tool_windows_64bit).rar

    1、图形化界面可以直观地查看 Kafka 的 Topic 里的内容 2、自由设置 Kafka 数据展示格式 3、使用 Kafka Tool 创建/删除 Topic 4、使用 Kafka Tool 模拟发送 Messages

    Kafka Tool linux版本,适用于kafka0.11及以上

    1. **集群概览**:Kafka Tool能够显示Kafka集群的整体状态,包括 brokers、topics、partitions和replicas 的详细信息,帮助管理员快速了解集群健康状况。 2. **主题管理**:用户可以通过Kafka Tool创建、修改、删除...

    kafka2种工具 kafkatool-64bit.exe kafka-eagle-bin-1.4.6.tar.gz

    3. **集群信息查看**:查看Kafka集群的状态,包括Brokers、Topics、Partitions和Replicas的信息。 4. **数据备份与恢复**:可以导出主题的数据到文件,或者从文件导入数据到主题,这对于数据迁移或备份至关重要。 5....

    Kafka Tool 2.0.7(windows 32\64).7z

    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 ...

    kafkatool_64bit_v1.0.3.exe.zip

    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 ...

    kafkatool (2.0版本).dmg

    kafka的开源客户端连接工具,简单易用,业内公认好用。使用教程网上众多,方便快速入门,使用门槛低,kafka的开源客户端连接工,kafka的开源客户端连接工,kafka的开源客户端连接工,kafka的开源客户端连接工

    kafkaTool工具.exe

    kafkaTool工具是kafka的一个监控工具,可以监控kafka的集群健康情况

    kafka可视化工具--kafkatool

    **Kafka工具详解——Kafkatool** Kafka作为一个分布式流处理平台,广泛应用于大数据实时处理和消息传递。然而,管理Kafka集群和操作其组件(如topics、partitions、offsets等)可能会变得复杂,这时就需要一些可视...

    KafkaTool_2.0.7.zip

    **KafkaTool 2.0.7:一款强大的Kafka管理工具** KafkaTool是一款针对Apache Kafka设计的高效、易用的图形化管理工具,版本2.0.7专为Kafka 0.11及更高版本提供支持。在这款工具的帮助下,用户可以便捷地进行各种操作...

    kafkatool客户端工具

    kafkatool客户端工具,查询kafka中的信息。

    kafkatool_64bit 可视化工具

    《Kafkatool_64bit:一款强大的Kafka可视化工具》 Kafkatool_64bit是一款专为64位操作系统设计的Kafka管理工具,它以其直观的界面和丰富的功能,使得管理和监控Apache Kafka集群变得轻而易举。这款工具的主要目标是...

    kafkatool_64bit.rar

    而为了更好地管理和监控Kafka集群,开发者们通常会依赖于一些工具,其中之一就是Kafka Tool。本文将详细介绍Kafka Tool 2.0.9版本的功能特性及其在Kafka集群管理中的应用。 Kafka Tool是一款强大的开源工具,专为...

    Kafka Tool Mac版本,适用于kafka0.11及以上

    1. **集群浏览**:Kafka Tool允许用户查看整个Kafka集群的概览,包括集群中的Brokers、Topics、Partitions和Replicas等信息。用户可以实时监控这些元素的状态,以便及时发现并解决问题。 2. **主题管理**:通过这款...

    KafkaTool1.0.3.zip

    5. **数据迁移**:在不同Kafka集群之间迁移Topics或Partitions是常见的需求,Kafka Tool支持这种迁移操作,确保数据安全无损地转移。 6. **备份与恢复**:Kafka Tool允许用户备份和恢复Topics,这对于灾难恢复或...

    Kafka管理工具Kafka Tool

    **Kafka Tool:高效管理...总的来说,Kafka Tool是Kafka管理员和开发者的得力助手,它简化了与Kafka交互的过程,提高了工作效率,是管理复杂Kafka集群不可或缺的工具之一。无论是日常运维还是问题排查,都能从中受益。

    kafkatool kafka可视化工具

    1. **集群管理**:Kafka Tool 提供了集群的全面视图,包括主题(Topics)、分区(Partitions)和副本(Replicas)等信息,使用户可以方便地查看、创建、修改和删除 Kafka 集群中的各种组件。 2. **数据浏览**:该...

Global site tag (gtag.js) - Google Analytics