zookeeper数据迁移至clickhouse-keeper

1)找到zookeeper主节点

zkServer.sh status

查看返回结果:

ZooKeeper JMX enabled by default

Using config: /conf/zoo.cfg

Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader

Mode说明:
值为leader 代表当前节点为zookeeper的领导节点

2)停3个zookeeper的节点,生成zookeeper快照

3)(建议)启动 后再停止 zookeeper的领导节点,强制生成一致快照

4)使用clickhouse keeper-converter转换zookeeper快照

clickhouse keeper-converter --zookeeper-logs-dir /var/log/zklog/version-2 --zookeeper-snapshots-dir /var/log/zkdata/version-2 --output-dir /var/log/temp/keeper/snapshots

docker容器部署的话:

docker exec -it (docker ps\|grep clickhouse-node\|awk '{print 1}') clickhouse keeper-converter --zookeeper-logs-dir /var/log/zklog/version-2 --zookeeper-snapshots-dir /var/log/zkdata/version-2 --output-dir /var/log/temp/keeper/snapshots
参数说明:

--zookeeper-logs-dir 后跟zookeeper的日志目录

--zookeeper-snapshots-dir 后跟zookeeper的快照目录

--output-dir 后跟转换后的快照所在目录
备注: keeper-converter 是clickhouse中的一个转换工具
最新版本的 做了软链接,可以直接使用clickhouse-keeper-converter 命令
低版本clickhouse(例如:22.3.3.44 ,版本查看命令:clickhouse-client --version),keeper-converter工具未做软连接,需要使用clickhouse keeper-converter

5)将转换后的快照,复制到clickhouse的几台节点上

例如:/var/lib/clickhouse/coordination/snapshots 如果是docker部署,copy到对应的宿主机挂载目录下

6)启动clickhouse(配置好clickhouse-keeper)

clickhouse-keeper直接嵌入到clickhouse中

将以下配置 放到clickhouse的配置文件中

其中: <server_id>1</server_id> 为Keeper集群的每个节点唯一ID,因此每个节点的配置应该不同,可分别为1,2,3

XML 复制代码
<keeper_server>
    <tcp_port>9181</tcp_port>
    <server_id>1</server_id>
    <log_storage_path>/var/lib/clickhouse/coordination/log</log_storage_path>
    <snapshot_storage_path>/var/lib/clickhouse/coordination/snapshots</snapshot_storage_path>

    <coordination_settings>
        <operation_timeout_ms>10000</operation_timeout_ms>
        <session_timeout_ms>30000</session_timeout_ms>
        <raft_logs_level>warning</raft_logs_level>
    </coordination_settings>

    <raft_configuration>
        <server>
            <id>1</id>
            <hostname>chnode1.domain.com</hostname>
            <port>9234</port>
        </server>
        <server>
            <id>2</id>
            <hostname>chnode2.domain.com</hostname>
            <port>9234</port>
        </server>
        <server>
            <id>3</id>
            <hostname>chnode3.domain.com</hostname>
            <port>9234</port>
        </server>
    </raft_configuration>
</keeper_server>
<!-- 启用clickhouse-keeper -->
<zookeeper>
    <node>
        <host>chnode1.domain.com</host>
        <port>9181</port>
    </node>
    <node>
        <host>chnode2.domain.com</host>
        <port>9181</port>
    </node>
    <node>
        <host>chnode3.domain.com</host>
        <port>9181</port>
    </node>
</zookeeper>

官网参考文档:https://clickhouse.com/docs/en/guides/sre/keeper/clickhouse-keeper

相关推荐
言之。9 小时前
Apache ZooKeeper 核心技术全解(面试+实战版)
zookeeper·面试·apache
czlczl200209253 天前
Zookeeper原理
分布式·zookeeper·云原生
czlczl200209253 天前
KRaft原理
java·zookeeper
白驹过隙不负青春3 天前
Zookeeper版本升级
分布式·zookeeper·云原生
yashuk3 天前
clickhouse-介绍、安装、数据类型、sql
数据库·sql·clickhouse
java1234_小锋4 天前
Java高频面试题:RocketMQ有哪些使用场景?
java·zookeeper·java-zookeeper
拦路雨g4 天前
Duboo配置zookeeper账号密码认证链接
分布式·zookeeper·云原生
百度Geek说5 天前
百度MEG数据中台ClickHouse在数据湖仓中的探索和应用
clickhouse·湖仓一体·lakehouse·数据引擎·存算分离
l1t5 天前
编译测试clickhouse-cpp客户端
c++·clickhouse
人间打气筒(Ada)5 天前
go实战案例:如何基于 Conul 给微服务添加服务注册与发现?
开发语言·微服务·zookeeper·golang·kubernetes·etcd·consul