zoukankan      html  css  js  c++  java
  • ZooKeeper在线迁移

    在至少有一个Leader存在的前提下,进行Zookeeper在线增量在线减量在线迁移

    在全过程中ZooKeeper不停止服务

    注意事项

    首先,当我们要从3台扩充到5台时,应保证集群不停止服务。

    3台不停止服务的最低限度是2台X/2+1),而5台的最低限度是3台

    • 我们应该保证,集群中最低有3台ZooKeeper是启动的。

    • 此外,重启时应保证先重启myid最小的机器,由小向大进行重启

    • Leader无论其myid大小,都放到最后重启

    因为ZooKeeper的机制中,myid大的会向小的发起连接,而小的不会向大的发起连接。因此如果最后重启myid最小的机器,则其可能无法加入集群

    环境情况

    五台机器

    IPHostname
    10.1.24.110 idc02-kafka-ds-00
    10.1.24.111 idc02-kafka-ds-01
    10.1.24.112 idc02-kafka-ds-02
    10.1.24.113 idc02-kafka-ds-03
    10.1.24.114 idc02-kafka-ds-04

    JDK

    jdk1.7.0_67

    ZooKeeper

    zookeeper-3.4.6

    myid

    根据IP自增为1-5

    配置文件

    实验过程

    配置一个3节点的ZooKeeper

    idc02-kafka-ds-00


    idc02-kafka-ds-01


    idc02-kafka-ds-02

    将其扩容为5节点的ZooKeeper

    先查看原先的ZooKeeper集群情况

    echo mntr|nc localhost 2181

    这条4字命令可以查看集群的情况,其中follower的相关数据需要在Leader机器上才能查看

    idc02-kafka-ds-01上查看

    启动另外两台机器的Zookeeper

    另外两台机器的配置文件

    启动

    idc02-kafka-ds-03


    idc02-kafka-ds-04

    再查看集群情况

    仍然在idc02-kafka-ds-01上查看

    可以看到zk_followers4,连接到的follower2变为4

    而且zk_synced_followers4,说明新加入的2个也都同步好了

    接下来我们滚动重启myid1-3的前三台机器

    先处理idc02-kafka-ds-00

    关闭

    如不放心请在关闭其间于Leader机器或后加入的两台机器上监控日志

    修改其配置文件

    由原来的

    到新的

    启动

    然后跳过作为Leaderidc02-kafka-ds-01,先处理idc02-kafka-ds-02

    关闭
    修改配置文件
    启动

    最后处理原Leaderidc02-kafka-ds-01

    关闭
    查看新Leader

    ZooKeeper会尽可能的选择myid最大的机器为Leader,因此原本的idc02-kafka-ds-04myid5变为了Leader

    修改配置文件
    启动

    在新的Leader上查看集群情况

    一切正常

    到这里,我们已经将原本的3台扩展到了5台,成功了一半。

    然后只要将现在的5台再缩小到3台且不包括原本myid1-2的机器,就完成了迁移

    将5台缩小回3台

    修改idc02-kafka-ds-02

    根据前面的注意事项,我们此时5台集群中启动的数量不得少于3台,因此我们需要先修改3-5号机器的配置文件为3台,再关闭1-2号机器

    关闭

    修改配置文件为

    启动

    然后修改idc02-kafka-ds-03

    关闭

    修改配置文件为

    启动

    最后修改idc02-kafka-ds-04

    关闭

    关闭后Leader移动到了myid第二大的idc02-kafka-ds-02

    修改配置文件为

    启动

    Leader中查看

    此时的zk_followers为2,说明Leader已经不认1-2号机器了

    关闭1-2号机器

    关闭idc02-kafka-ds-00

    关闭idc02-kafka-ds-01

    再查看

    没有任何影响

    实验成功

  • 相关阅读:
    Hive的安装和建表
    在MarkDown中插入数学公式对照表(持续更新)
    Beta版本冲刺总汇
    a版本十日冲刺总汇
    “我们只是信息的搬运工”
    调查报告
    Beta版本冲刺第七天
    Beta版本冲刺第六天
    Beta版本冲刺第五天
    Beta版本冲刺第四天
  • 原文地址:https://www.cnblogs.com/liqing1009/p/7411685.html
Copyright © 2011-2022 走看看