该文档使用docker容器化部署clickhouse集群,通过将相关配置和数据挂载到宿主机的方式进行数据的持久化。示例中集群为两个分片,每个分片两个副本(可根据实际需求进行调整)。
clickhouse 集群规划
| IP | layer | shard | replica |
|---|---|---|---|
| 10.100.1.1 | 01 | 01 | 1 |
| 10.100.1.2 | 01 | 01 | 2 |
| 10.100.1.3 | 01 | 02 | 1 |
| 10.100.1.4 | 01 | 02 | 2 |
生成基本的配置,如文件夹和配置文件等
-
创建
clickhouse所需文件夹,用于存放clickhouse配置文件和挂载容器数据mkdir -p /opt/clickhouse-server/{ config,data,logs}目录 作用 容器内目录 configclickhouse配置文件/etc/clickhouse-server/ config/config.d如果需要新增或修改默认配置,可将配置文件添加到config.d目录下,项目启动时会将配置合并。 /etc/clickhouse-server/config.d dataclickhouse数据文件/var/lib/clickhouse/ logsclickhouse日志/var/log/clickhouse-server/ -
启动一个临时容器,复制容器内的默认配置文件到宿主机
# 启动一个临时容器 docker run --name temp-clickhouse -d clickhouse/clickhouse-server:23.1.3.5 # 复制容器内部的配置到宿主机 docker cp temp-clickhouse:/etc/clickhouse-server/ .
-
将第二步中复制出来的
clickhouse所有配置文件移动到config目录下mv clickhouse-server/* /opt/clickhouse-server/config/
更改clickhouse配置
-
更改
config.xml,-
remote_servers: 默认的配置文件中存在一些用于演示的集群配置,可以将对应的配置进行注释

-
timezone更改clickhouse服务时区到Asia/Shanghai

-
-
在
config.d目录下新增metrika.xml配置文件,用于设置集群和zookeeper相关配置<!-- 以10.100.1.1机器作为示例配置 --> <clickhouse> <!-- remote_servers为集群配置信息,每次更改后可及时生效,无需重启服务器 --> <remote_servers> <cluster_2_shard_2_replicas> <shard> <replica> <!-- host 配置需要注意,如果宿主机未添加集群内其他机器的hostname映射关系,则需要在docker命令中添加, 并且只能使用hostname访问 --> <!-- 如果宿主机添加了host则可以直接使用ip地址进行访问 --> <host>10.100.1.1</host> <port<

本文档介绍如何通过容器化部署Clickhouse集群,采用数据挂载到宿主机实现持久化,集群配置为两个分片,每个分片两个副本。涉及步骤包括集群规划、配置文件的生成与修改、以及启动命令的说明。
最低0.47元/天 解锁文章
987

被折叠的 条评论
为什么被折叠?



