设为首页 收藏本站
查看: 559|回复: 0

[经验分享] kafka Reassign Partitions Tool

[复制链接]

尚未签到

发表于 2017-5-23 17:25:03 | 显示全部楼层 |阅读模式
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
 
 
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379903-1-1.html 上篇帖子: kafka迁移与扩容 下篇帖子: Kafka入门经典教程
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表