作者:陈宇
现任爱可生南区项目经理,负责项目整体质量、安全、进度、成本管理的责任保证体系。对开源技术执着,为客户负责,喜欢极限运动,足球。
本文来源:原创投稿
*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。
ClickHouse 社区在 21.8 版本中开始引入了 ClickHouse-Keeper ,直至 ClickHouse 21.12 发布公告提到 ClickHouse Keeper 功能基本完成。
ClickHouse Keeper 是 ZooKeeper 的替代品,与 ZooKeeper 不同,ClickHouse Keeper 是用 C++ 编写的,并使用 RAFT 算法实现,该算法允许对读写具有线性化能力,具有多种不同语言的开源实现。
为什么要引入 ClickHouse-Keeper 呢?主要是 ClickHouse 使用 Zookeeper 有着众多痛点:
而 ClickHouse-Keeper 存在着以下优点:
相较之前的集群配置,没有太大区别,而 ClickHouse-Keeper 仅当<keeper_server>标签存在于配置中时才会运行,配置模板如下:
clickhouse-keeper --config /etc/your_path_to_config/config.xml
<keeper_server>.<coordination_settings>部分
<keeper_server>.<raft_configuration>部分
命令如下:
echo ruok | nc 127.0.0.1 9181
成功则返回 imok
注:输出以上信息代表安装成功
既然 ClickHouse-Keeper 优势这么明显,那么如何将 Zookeeper 中的数据迁移到 ClickHouse-Keeper 中呢?官方提供了迁移工具 ClickHouse-Keeper-Converter, 它能够将 Zookeeper 中的数据 dump 成 ClicHouse-Keeper 能够加载的 snapshot 。
迁移步骤如下
命令参考:
clickhouse-keeper-converter --zookeeper-logs-dir /var/lib/zookeeper/version-2 --zookeeper-snapshots-dir /var/lib/zookeeper/version-2 --output-dir /path/to/clickhouse/keeper/snapshots
参考文献:https://clickhouse.com/docs/en/operations/clickhouse-keeper/
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。