zoukankan      html  css  js  c++  java
  • kafka集群扩容以及数据迁移

    一 kafka集群扩容比较简单,机器配置一样的前提下只需要把配置文件里的brokerid改一个新的启动起来就可以。比较需要注意的是如果公司内网dns更改的不是很及时的话,需要给原有的旧机器加上新服务器的host,不然可能会产生controller服务器从zk上拿到域名但是解析不到新机器地址的情况。

    二 集群扩容后数据是不会自动均衡到新机器上的,需要采用kafka-reassign-partitions.sh这个工具脚本。脚本可以工作在三种模式--generate,--execute,--verify

    分别用来生成topic迁移计划文件,执行迁徙计划,查看迁移进度,官方文档写的很明白了,不足的地方是每一步都需要手工执行比较麻烦和容易出错,借用了组内同学之前写的

    一个脚本差不多实现了半自动化还是很提高效率的,备忘一下。

    startRebalance.sh

    #!/bin/bash

     source /etc/profile

    source ./conf.sh

    echo "zkConf:"  $zkServer$clusterName 

    echo "brokerList:" $brokerIdList

    echo "###########################start generate reblance conf##############################"

    content=`kafka-reassign-partitions.sh --zookeeper $zkServer$clusterName --topics-to-move-json-file topicmove.conf.multi --broker-list $brokerIdList --generate`

    content=`echo $content | awk -F 'Proposed partition reassignment configuration' '{print $2}'`

    echo $content

    echo $content > ressgintopic.conf

    echo $content >> ./log/reblance.log

    echo "" >> ./log/reblance.log

    echo "###########################end generate reblance conf##############################"

     #start reblance

    echo "###########################start reblance##############################"

    kafka-reassign-partitions.sh --zookeeper $zkServer$clusterName --reassignment-json-file ressgintopic.conf --execute

     

    conf.sh

    #!/bin/bash

     zkServer=1.1.1.1:2181

    clusterName=/kafka/chroot

    brokerIdList=1,2,3

     

  • 相关阅读:
    学区房概念
    VMwareworkstationfull8.0.2591240.exe
    VMwareworkstationfull8.0.4744019.exe
    .net伪静态
    将DataTable中的某一行复制到另一个新的DataTable(转)
    js服务器端控件Label 与TextBox RadioButtonList 与 DropDownList 的值
    Iframe刷新父窗口的几种方式
    记录一下ListItem类的常用的方法
    ASP.net中的Repeater控件嵌套
    记录一条自己常用的分页存储过程
  • 原文地址:https://www.cnblogs.com/dongxiao-yang/p/5262860.html
Copyright © 2011-2022 走看看