当前位置: 首页 > article >正文

Zookeeper 数据迁移实战:基础环境搭建与高效迁移方案全览

文章目录

  • 一、Zookeeper数据迁移简介
  • 二、迁移zookeeper数据基础环境
  • 三、利用快照迁移zookeeper数据
    • 1、Node1最新的zk快照文件和日志文件
    • 2、将被迁移方node2的zookeeper的集群全部stop
    • 3、将源node1集群数据和日志拷贝到指定目录下
    • 4、验证优先启动拷贝的数据、日志的zookeeper节点,
  • 四、利用开源工具zkcopy进行在线同步数据
    • 1、下载官方开源工具
    • 2、同步数据方法

一、Zookeeper数据迁移简介

本次Zookeeper数据迁移的方案:
一是先将源集群中的快照、日志拷贝出到目标节点指定目录中,再将快照、日志文件迁移到目标集群节点的指定目录下。再启动目标节点的Zookeeper服务,该方案最好需要停止源集群的写操作,避免数据不一致。

二利用开源工具可以进行同步,如使用zkcopy开源工具进行在线同步,可以使两个Zookeeper或Zookeeper集群之间进行数据同步,但不能对Zookeeper的log日志进行同步。使用zkcopy的特点,是在不停服的情况下,可以进行数据同步,不用担心数据不一致问题,但改工具不能对日志进行拷贝。

二、迁移zookeeper数据基础环境

源节点Node1:XxX.XXX.XXX.214Docker-compose部署
3节点zookeeper伪集群
Centos7.9
目标
节点
Node2:XxX.XXX.XXX.215Docker-compose部署
3节点zookeeper伪集群
Centos7.9

三、利用快照迁移zookeeper数据

1、Node1最新的zk快照文件和日志文件

最好先停掉源集群中的zookeeper的进程,并将zookeeper中的最新的快照和日志拷贝到目标node2上,这样能保证数据的一致性。

#查看数据目录和日志目录路径
cat $HOME/conf/zoo.cfg | grep dataDir
ls -alh $HOME/zookeeper/version-2/
示例:
[root@bogon zk-3]# tree
.
├── conf
│   └── zoo.cfg
├── data
│   ├── myid
│   └── version-2
│       ├── acceptedEpoch
│       ├── currentEpoch
│       └── snapshot.0
└── datalog
    └── version-2
        └── log.100000001


#将最新的snapshot.0  log.100000001拷贝到目标主机node2某个位置。
Scp -r snapshot.0 log.100000001 root@XxX.XXX.XXX.215:/tmp

2、将被迁移方node2的zookeeper的集群全部stop

将node2的zookeeper的集群全部stop后,清空集群各个节点的数据和日志目录,

#清空数据目录、和日志目录
Rm -rf /data/zookeeper/version-2/*  
Rm -rf /dataLog/zookeeper/version-2/*

3、将源node1集群数据和日志拷贝到指定目录下

将拷贝过来的snapshot.0 log.100000001拷贝到某一个zookeeper的节点的目录下即可

#接数据、日志。拷贝相应目录下
Cp -a /tmp/snapshot.0   /data/zookeeper/version-2/
Cp -a /tmp/log.100000001 /dataLog/zookeeper/version-2/

4、验证优先启动拷贝的数据、日志的zookeeper节点,

如果是三节点,先恢复其中一台,然后等数据恢复完成后,再启动其他两个节点。
检查是否将源节点的数据目录是否成功拷贝到新节点上、还可以根据实际生产情况,验证。此处不是生产环节,只作查验操作演示如下:

#登录到zookeeper里后执行
./bin/zkCli.sh
#使用ls 查看
[zk: localhost:2181(CONNECTED) 0] ls /
[p_node1, zookeeper]
#使用get 查看
[zk: localhost:2181(CONNECTED) 1] get /p_node1/seq_0000000001
1

以上为通过对数据、日志的拷贝完成zookeeper数据的迁移,作为常规手段,操作方便,使用简单。

四、利用开源工具zkcopy进行在线同步数据

1、下载官方开源工具

下载官方开源工具,并进行build
git clone https://github.com/kshchepanovskyi/zkcopy.git
进入参zkcopy目录,执行
mvn clean install //没有maven环境先准备环境,官方推荐maven3

2、同步数据方法

docker pull ksprojects/zkcopy
docker run --rm -it ksprojects/zkcopy --source server:port/path --target server:port/path
#官方提供命令
java -jar target/zkcopy.jar --source server:port/path --target server:port/path
示例如下:
java -jar target/zkcopy.jar --source XxX.XXX.XXX.214:2181/p_node1 --target XxX.XXX.XXX.215:2181/p_node1
参考说明:
path为zookeeper的znode节点
如:[zk: localhost:2181(CONNECTED) 0] ls /
[p_node1, p_node2, zookeeper]

http://www.kler.cn/a/507408.html

相关文章:

  • 鸿蒙动态路由实现方案
  • 国产游戏行业的挑战与机遇:IT技术如何引领未来
  • IEEE期刊;latex模板学习记录
  • 从AI生成内容到虚拟现实:娱乐体验的新边界
  • 天机学堂笔记1-网关拦截器获取用户信息保存到ThreadLocal
  • 从RNN到Transformer:生成式AI技术演变与未来展望
  • 【深度学习】Pytorch:导入导出模型参数
  • python mysql库的三个库mysqlclient mysql-connector-python pymysql如何选择,他们之间的区别
  • 【Linux】打破Linux神秘的面纱
  • 西门子【Library of Basic Controls (LBC)基本控制库”(LBC) 提供基本控制功能】
  • 神经网络基础-正则化方法
  • 机器学习-常用的三种梯度下降法
  • CSS 样式 margin:0 auto; 详细解读
  • Jackson 中的多态类型支持:@JsonTypeInfo 和 @JsonSubTypes 使用技巧
  • 蓝桥杯刷题第四天——字符排序
  • 基于智能物联网的肉鸡舍控制器:设计、实施、性能评估与优化
  • 个人vue3-学习笔记
  • 服务器数据恢复—EMC存储POOL中数据卷被删除的数据恢复案例
  • Qt类的提升(Python)
  • 大模型赋能医疗项目,深兰科技与武汉协和医院达成合作