ClickHouse多节点集群理想分片配置与后续扩容方案咨询
ClickHouse集群配置与容量规划方案
当前2台14TB节点的配置方案
你现有2台ClickHouse节点+3台ZooKeeper的基础设施,原有的1分片2副本配置是当前最优的生产级配置,原因如下:
- 生产环境要求单分片至少2副本做冗余,避免单点故障导致数据丢失,2台节点刚好满足1个分片的副本数要求,无需调整架构
- 容量规划规则:ClickHouse单节点存储使用率建议控制在70%以内,预留足够空间给后台Merge动作、临时查询数据缓存,14TB单节点的可用存储约为9.8TB;由于副本是冗余存储,集群整体可用存储等于单节点可用容量,约10TB,可根据你的数据写入速率预估存储可用周期。
需要修正的配置细节:2台节点的macros配置需要区分副本标识,不能完全一致:
- 10.10.1.114节点
macros配置保持原配置即可:
<macros> <shard>shard-01</shard> <replica>replica-01</replica> </macros>
- 10.10.1.115节点
macros配置需修改为:
<macros> <shard>shard-01</shard> <replica>replica-02</replica> </macros>
remote_servers配置保持原配置不变即可:
<remote_servers> <click_cluster> <shard> <replica> <host>10.10.1.114</host> <port>9000</port> </replica> <replica> <host>10.10.1.115</host> <port>9000</port> </replica> </shard> </click_cluster> </remote_servers>
新增2台同规格节点的配置调整方案
新增2台节点后总共有4台ClickHouse服务器,推荐优先选择2分片2副本架构,兼顾存储扩容和高可用:
- 总可用存储提升至原来的2倍,约20TB,同时保持每个分片2副本的高可用能力,单分片内任意1台节点故障不影响集群服务
- 对应
remote_servers配置修改为:
<remote_servers> <click_cluster> <shard> <replica> <host>10.10.1.114</host> <port>9000</port> </replica> <replica> <host>10.10.1.115</host> <port>9000</port> </replica> </shard> <shard> <replica> <host>新增节点1IP</host> <port>9000</port> </replica> <replica> <host>新增节点2IP</host> <port>9000</port> </replica> </shard> </click_cluster> </remote_servers>
- 新增节点
macros配置分别设置为:- 新增节点1:
<shard>shard-02</shard>、<replica>replica-01</replica> - 新增节点2:
<shard>shard-02</shard>、<replica>replica-02</replica>
- 新增节点1:
如果你的场景是读QPS极高、数据量长期不会超过10TB,也可以选择1分片4副本架构,读性能会提升1倍,但存储容量不会扩容。
通用最佳实践
- 生产环境禁止使用单副本分片,任意节点故障都会导致数据丢失或服务不可用
- 分片数量可根据未来3年的预估总数据量计算:所需分片数 = 预估总数据量 / 单节点可用容量(14TB70%≈10TB),总服务器数量=分片数副本数
- 现有3节点ZooKeeper集群已经满足生产环境要求,只要不与ClickHouse节点混部即可稳定运行
内容的提问来源于stack exchange,提问作者Alamgir Qazi
相关产品推荐
相关产品推荐

