帮你快速理解、总结文档立即下载
文档中心>腾讯云数据仓库 TCHouse-C>操作指南>多 ZooKeeper/ClickHouse Keeper 集群

多 ZooKeeper/ClickHouse Keeper 集群

最近更新时间:2026-11-12 21:17:00
我的收藏

功能介绍

在处理多副本协同和分布式元数据同步时,腾讯云数据仓库 TCHouse-C 依赖 Apache ZooKeeper 等分布式协调服务,用以保障集群的高可用性与数据一致性,其核心作用主要体现在以下方面:
副本数据同步与一致性:当数据写入某个副本时,该副本需要通过协调服务将数据分区(Parts)的变动日志通知给其他副本,确保所有副本拉取并合并相同的数据块,实现最终一致性。
分布式 DDL 执行:当执行建表、修改表结构等集群级 DDL 操作时,协调服务负责记录和分发任务,确保所有节点按相同顺序执行,避免集群元数据分裂。
为满足不同业务场景下对性能、资源开销及高并发写入隔离的需求,TCHouse-C 支持在创建多副本集群时,提供了 ZooKeeper 或 ClickHouse Keeper 供用户灵活选配。针对高并发写入、大规模数据同步或高负荷元数据交互场景,TCHouse 支持扩展到最多 12 套 ZooKeeper 或 ClickHouse Keeper 集群,实现元数据与协调请求的分流,避免单套 ZooKeeper 或 ClickHouse Keeper 负载过高而导致的写入阻塞或集群崩溃风险,大幅提升高负载场景下的集群吞吐能力与写入稳定性。
说明:
1. ClickHouse Keeper 是 ClickHouse 官方推出的基于 C++ 语言实现的分布式协调服务,具备更高的吞吐性能、更低的资源开销(CPU/内存)以及更强的高并发元数据交互能力。
2. ZooKeeper 或 ClickHouse Keeper 主要在集群创建阶段完成配置,日常的建表(CREATE TABLE)、数据查询、运维管理及其他数仓常规操作保持一致,业务层无需修改 SQL 逻辑。
注意:
1. TCHouse-C 最多支持 12 套 ZooKeeper 或 ClickHouse Keeper 集群,每套集群 3 节点不可修改,不支持 ZooKeeper 与 ClickHouse Keeper 混合部署;
2. TCHouse-C 标准版仅在 25.3 及以上内核版本提供 ClickHouse Keeper,25.3 之前版本(不包含 25.3)仅支持 ZooKeeper;TCHouse-C 弹性版默认为 ClickHouse Keeper,不可选择 ZooKeeper;
3. 同一个 TCHouse-C 集群的所有 ZooKeeper 或 ClickHouse Keeper 必须保持完全一致的规格配置。当进行垂直升降配操作时,系统将自动对所有 ZooKeeper 或 ClickHouse Keeper 实例规格进行同步升降配。
4. 多 ZooKeeper/ClickHouse Keeper 集群支持按需动态扩容(即支持从少到多增加 ZooKeeper 或 ClickHouse Keeper 集群数),但出于元数据一致性与架构安全考虑,暂不支持缩容(即不支持从多到少减少 ZooKeeper 或 ClickHouse Keeper 集群数),请在规划初期根据业务峰值合理评估集群套数。

控制台操作步骤

1. 登录 云数据仓库 TCHouse-C 控制台,在 集群列表 中选择对应的集群,在集群详情页面右下角单击 升级多 ZK/多 Keeper 页面。



查看 升级多 ZK/多 Keeper 配置信息:



2. 可在配置文件 config.xml 中查看已经存在的多 ZooKeeper/ClickHouse Keeper 信息。



3. 创建多 ZooKeeper/ClickHouse Keeper 之后,也可以对集群中的 ZooKeeper 或 ClickHouse Keeper 节点进行垂直升降配和扩容磁盘。




多 ZooKeeper/ClickHouse Keeper 使用方法

1. 创建库。
CREATE DATABASE IF NOT EXISTS testdb ON CLUSTER default_cluster;
2. 创建使用默认 ZooKeeper/ClickHouse Keeper 的表。
CREATE TABLE testdb.account ON CLUSTER default_cluster(accountid UInt16,name String,address String,year UInt64) ENGINE =ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/testdb/account', '{replica}') ORDER BY (accountid);
3. 创建使用多 ZooKeeper/ClickHouse Keeper 的表。
-- 创建表时,如果是使用第二套 ZooKeeper/ClickHouse Keeper 就在创建表的 ZooKeeper/ClickHouse Keeper 路径前加:'zookeeper2'前缀,以此类推,使用第三套 ZooKeeper/ClickHouse Keeper,则加'zookeeper3'前缀。
CREATE TABLE testdb.account2 ON CLUSTER default_cluster(accountid UInt16,name String,address String,year UInt64) ENGINE =ReplicatedMergeTree('zookeeper2:/clickhouse/tables/{layer}-{shard}/testdb/account2', '{replica}') ORDER BY (accountid);