ClickHouse集群配置说明
背景介绍
ClickHouse通过多分片多副本的部署架构实现了集群的高可用,每个集群定义多个分片,每个分片具有2个或2个以上副本。当某节点故障时,分片内其他主机节点上的副本可替代工作,保证服务能正常运行,提高集群的稳定性。
本章节仅适用于MRS 3.1.0版本。
集群配置
- 登录集群Manager页面,选择“集群 > 服务 > ClickHouse > 配置 > 全部配置”。
- 在“clickhouse-metrika-customize”参数中添加表1中自定义配置项。
表1 自定义参数 参数
值
clickhouse_remote_servers.example_cluster.shard[1].replica[1].host
host1.9bf17e66-e7ed-4f21-9dfc-34575f955ae6.com
clickhouse_remote_servers.example_cluster.shard[1].replica[1].port
9000
clickhouse_remote_servers.example_cluster.shard[1].replica[2].host
host2.9bf17e66-e7ed-4f21-9dfc-34575f955ae6.com
clickhouse_remote_servers.example_cluster.shard[1].replica[2].port
9000
clickhouse_remote_servers.example_cluster.shard[1].internal_replication
true
clickhouse_remote_servers.example_cluster.shard[2].replica[1].host
host3.9bf17e66-e7ed-4f21-9dfc-34575f955ae6.com
clickhouse_remote_servers.example_cluster.shard[2].replica[1].port
9000
clickhouse_remote_servers.example_cluster.shard[2].replica[2].host
host4.9bf17e66-e7ed-4f21-9dfc-34575f955ae6.com
clickhouse_remote_servers.example_cluster.shard[2].replica[2].port
9000
clickhouse_remote_servers.example_cluster.shard[2].internal_replication
true
- 单击“保存”,保存配置。
上述集群架构如下图所示:
配置参数说明如下:
- default_cluster标签
- macros标签
例如,上述配置对应host3节点实例,该实例所在分片编号shard为2,副本编号replica为1。
本章节详细描述了分片和副本信息的配置说明,具体ClickHouse集群副本之间如何进行数据同步,详见副本机制详细说明。
副本机制
ClickHouse利用ZooKeeper,通过ReplicatedMergeTree引擎(Replicated 系列引擎)实现了副本机制。副本机制是多主架构,可以将INSERT语句发送给任意一个副本,分片内其余副本会进行数据的异步复制。
下图中的Node1和Node2对应为集群配置中的host1和host2主机节点。
ClickHouse集群创建成功后,默认会创建3个Zookeeper节点,ZooKeeper中存储了ClickHouse的表在复制过程中的元数据信息。
ZooKeeper节点信息可以参考config.xml文件内容,具体路径在“${BIGDATA_HOME}/FusionInsight_ClickHouse_版本号/x_x_clickhouse实例名/etc”目录下。
<yandex> ... <zookeeper> <node index="1"> <host>node-master1lrgj.9bf17e66-e7ed-4f21-9dfc-34575f955ae6.com</host> <port>2181</port> </node> <node index="2"> <port>2181</port> <host>node-master2vocd.9bf17e66-e7ed-4f21-9dfc-34575f955ae6.com</host> </node> <node index="3"> <host>node-master3xwmu.9bf17e66-e7ed-4f21-9dfc-34575f955ae6.com</host> <port>2181</port> </node> </zookeeper> ...
集群配置完成后,具体后续怎么使用可以参考ClickHouse表创建章节描述。