当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

kafka Reassign Partitions Tool

发表于: 2015-07-02   作者:blackproof   来源:转载   浏览次数:
摘要: kafka 0.8增加了重新分配partition功能,进行扩容,增加减少replica,移动partition kafka-reassign-partitions.sh脚本   Option                           &nbs

kafka 0.8增加了重新分配partition功能,进行扩容,增加减少replica,移动partition

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   

                                          if --topics-to-move-json-file is     

                                          used to generate reassignment        

                                          configuration                        

--execute                               Kick off the reassignment as specified 

                                          by the --reassignment-json-file      

                                          option.                              

--generate                              Generate a candidate partition         

                                          reassignment configuration. Note     

                                          that this only generates a candidate 

                                          assignment, it does not execute it.  

--reassignment-json-file <manual        The JSON file with the partition       

  assignment json file path>              reassignment configurationThe format 

                                          to use is -                          

                                        {"partitions":                         

                                                [{"topic": "foo",                     

                                                  "partition": 1,                     

                                                  "replicas": [1,2,3] }],             

                                        "version":1                            

                                        }                                      

--topics-to-move-json-file <topics to   Generate a reassignment configuration  

  reassign json file path>                to move the partitions of the        

                                          specified topics to the list of      

                                          brokers specified by the --broker-   

                                          list option. The format to use is -  

                                        {"topics":                             

                                                [{"topic": "foo"},{"topic": "foo1"}], 

                                        "version":1                            

                                        }                                      

--verify                                Verify if the reassignment completed   

                                          as specified by the --reassignment-  

                                          json-file option.                    

--zookeeper <urls>                      REQUIRED: The connection string for    

                                          the zookeeper connection in the form 

                                          host:port. Multiple URLS can be      

                                          given to allow fail-over.   

 

 

narkhed$ cat partitions-to-move.json  

 {"partitions":

                                            [{"topic": "foo",

                                              "partition": 1,

                                              "replicas": [1,2,3] }],

                                        "version":1

                                        }

    

    

    

bin/kafka-reassign-partitions.sh --topics-to-move-json-file dirk_topic_move.json  --zookeeper host34/kafka-dirktest --broker-list "0341,0361" --generate

生成将topic dirkzhang放到341和361上的json,用json执行execute就可以了

Current partition replica assignment

 

{"version":1,"partitions":[{"topic":"dirkzhang","partition":6,"replicas":[361,371]},{"topic":"dirkzhang","partition":0,"replicas":[361,371]},{"topic":"dirkzhang","partition":5,"replicas":[341,371]},{"topic":"dirkzhang","partition":4,"replicas":[371,361]},{"topic":"dirkzhang","partition":3,"replicas":[361,341]},{"topic":"dirkzhang","partition":7,"replicas":[371,341]},{"topic":"dirkzhang","partition":1,"replicas":[371,341]},{"topic":"dirkzhang","partition":2,"replicas":[341,361]}]}

 

Proposed partition reassignment configuration

 

{"version":1,"partitions":[{"topic":"dirkzhang","partition":6,"replicas":[361,341]},{"topic":"dirkzhang","partition":5,"replicas":[341,361]},{"topic":"dirkzhang","partition":0,"replicas":[361,341]},{"topic":"dirkzhang","partition":4,"replicas":[361,341]},{"topic":"dirkzhang","partition":3,"replicas":[341,361]},{"topic":"dirkzhang","partition":1,"replicas":[341,361]},{"topic":"dirkzhang","partition":7,"replicas":[341,361]},{"topic":"dirkzhang","partition":2,"replicas":[361,341]}]}                                        

                                        

 -----------------------------------------------------------------                                       

                                        

bin/kafka-reassign-partitions.sh --zookeeper host34/kafka-dirktest --reassignment-json-file dirk_move_partition.json --execute

将partition0,1的replica放到341,371上(brokerid前边不能有零,是int)

dirk_move_partition.json:

{"version":1,"partitions":

[{"topic":"dirkzhang",

  "partition":0,

  "replicas":[341,371]

},

{"topic":"dirkzhang",

"partition":1,

"replicas":[341,371]

}]

}

 

------------------------------------------------

用verify检查是否迁移成功

bin/kafka-reassign-partitions.sh --reassignment-json-file dirk_move_partition.json  --zookeeper host34/kafka-dirktest --verify

Status of partition reassignment:

Reassignment of partition [dirkzhang,1] completed successfully

 

----------------------------------------------------

收集replica迁移,选leader的日志

bin/kafka-run-class.sh kafka.tools.StateChangeLogMerger

 

--end-time <end timestamp in the        The latest timestamp of state change   

  format java.text.                       log entries to be merged (default:   

  SimpleDateFormat@f17a63e7>              9999-12-31 23:59:59,999)             

--logs <file1,file2,...>                Comma separated list of state change   

                                          logs or a regex for the log file     

                                          names                                

--logs-regex <for example: /tmp/state-  Regex to match the state change log    

  change.log*>                            files to be merged                   

--partitions <0,1,2,...>                Comma separated list of partition ids  

                                          whose state change logs should be    

                                          merged                               

--start-time <start timestamp in the    The earliest timestamp of state change 

  format java.text.                       log entries to be merged (default:   

  SimpleDateFormat@f17a63e7>              0000-00-00 00:00:00,000)             

--topic <topic>                         The topic whose state change logs      

                                          should be merged 

 

bin/kafka-run-class.sh kafka.tools.StateChangeLogMerger --topic dirkzhang --partition 0,1,2 --start-time "2015-07-02 00:00:00,000" --end-time "2015-07-03 00:00:00,000" --logs /data/kafka_2.10-0.8.2.1/logs/state-change.log

 

 

 

 

kafka Reassign Partitions Tool

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
I've been using mac for years, but prefer to do software development on windows. I'm really u
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛
【原创声明】本文属作者原创,已授权InfoQ中文站首发,转载请务必在文章开头标明出自“Jason's Blog
1.概述   在《Kafka实战-入门》一篇中,为大家介绍了Kafka的相关背景、原理架构以及一些关键知识
kafka详解一、Kafka简介 分类: Kafka 2014-08-18 10:45 375人阅读 评论(0) 收藏 举报 背景: 当今
kafka自带了很多工具类,在源码kafka.tools里可以看到: 这些类该如何使用呢,kafka的设计者早就为
原文: http://www.infoq.com/cn/articles/kafka-analysis-part-1 原文(排版好一点): http://www.jas
http://www.infoq.com/cn/articles/kafka-analysis-part-3?utm_source=infoq&utm_medium=related_co
http://www.infoq.com/cn/articles/kafka-analysis-part-1/ Kafka是由LinkedIn开发的一个分布式的消
1.概述   前面给大家介绍了整个Kafka项目的开发流程,今天给大家分享Kafka如何获取数据源,即Kafk
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号