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

embedded/2025/1/16 9:26:33/

文章目录

  • 一、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_6">二、迁移zookeeper数据基础环境

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

zookeeper_10">三、利用快照迁移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

zookeeperstop_38">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/

zookeeper_56">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.ppmy.cn/embedded/154358.html

相关文章

适配器模式案例

如果在这样的结构中 我们在Controller中注入,但我们后续需要修改Oss时,比如从minioService改成AliyunService时,需要改动的代码很多。于是我们抽象出一个FileService,让controller只跟fileservice耦合,这样我没只需要在…

@JsonFormat @DateTimeFormat 注解

JsonFormat(shape JsonFormat.Shape.STRING, pattern "yyyy-MM-dd HH:mm:ss", timezone "GMT8") DateTimeFormat(pattern "yyyy-MM-dd HH:mm:ss")JsonFormat 注解 用于在 Java 对象与 JSON 数据之间进行序列化和反序列化操作序列化过程时&a…

【C语言】【C++】Curl库的安装

1、访问github上的curl源代码库&#xff1a; 源码链接 2、下载curl的全部源码&#xff1a; 3、解压缩&#xff0c;找到include/目录下的curl/文件夹&#xff0c;将它复制到编译器的include目录下。 之后就可以引用相关头文件了。举例&#xff1a; #include <curl/curl.h&g…

MATLAB语言的计算机基础

MATLAB语言的计算机基础 引言 在当今信息技术飞速发展的时代&#xff0c;编程能力已成为当代人士必备的一项基本技能。MATLAB&#xff08;矩阵实验室&#xff09;作为一种高级编程语言和环境&#xff0c;广泛应用于数据分析、算法开发、模型创建、数字图像处理和计算机视觉等…

Android 概述

Android是一个广泛使用的开源操作系统&#xff0c;主要应用于移动设备&#xff0c;如智能手机、平板电脑、智能电视、智能手表等。它由Google主导开发&#xff0c;并基于Linux内核构建。Android的开源特性、可定制性和丰富的生态系统&#xff0c;使其成为全球范围内最流行的操作…

利用平面进行位姿约束优化

/*** 设位姿pose存在误差&#xff0c;利用观测到的平面进行位姿pose优化&#xff0c;只优化位姿pose的z轴平移和roll,pitch,yaw四个变量&#xff0c;要求优化后的pose&#xff0c;z轴与平面的z一致。请修改代码实现这个功能* * */ #include <gtsam/slam/PriorFactor.h> #…

计算机后端学习路径(精华版)

这张计算机后端学习路径图就像是你的私人导航&#xff0c;指引你从掌握基础语言开始&#xff0c;如Python或Java&#xff0c;一路升级到理解服务器、数据库和API设计的奥秘。随着你的进步&#xff0c;它还会教你如何处理更酷炫的东西&#xff0c;比如云端服务、安全措施以及怎样…

基于CANoe16的新书《CANoe开发与CAPL编程实践》

&#x1f345; 我是蚂蚁小兵&#xff0c;专注于车载诊断领域&#xff0c;尤其擅长于对CANoe工具的使用&#x1f345; 寻找组织 &#xff0c;答疑解惑&#xff0c;摸鱼聊天&#xff0c;博客源码&#xff0c;点击加入&#x1f449;【相亲相爱一家人】&#x1f345; 玩转CANoe&…