一、下载、安装
主机列表
主机 | 部署服务 |
---|---|
192.168.1.128 | clickhouse-client、clickhouse-server、zookeeper |
192.168.1.129 | clickhouse-client、clickhouse-server、zookeeper |
192.168.1.130 | clickhouse-client、clickhouse-server、zookeeper |
下载
从 官方网站 找到需要下载的clickhouse 离线 rpm包,主要下载的几个包是
- clickhouse-client
- clickhouse-common-static
- clickhouse-common-static-dbg
- cliclhouse-server
- clickhouse-test
注意要下载相同版本的的包,我这里下载的是21.1.6.13.2 版本
安装
在已下载的rpm包同级目录执行命令
>>> sudo yum localinstall clickhouse-common*
>>> sudo yum localinstall cliclhouse-server-* clickhouse-client-* clickhouse-test*
二、配置
安装完成后,clickhouse的配置文件在 /etc/clickhouse-server、/etc/clickhouse-client/ 。主要关注配置文件/etc/clickhouse-server/conf.xml
- 集群信息,定义集群名,集群分片数和副本数,分片和副本的主机划分
- 修改zookeeper 地址
- 修改path , 重新指定 clickhouse的数据存储路径
- 修改macros、前面三个配置,每个clickhouse-server 都一样,macros 是每个节点的唯一的。
定义集群信息
每台主机只能部署一个clickhouse-server ,一个clickhouse-server 在同一个集群内 只能存储单个partiton的单个 replica。这里只有三台主机,我们配置一个3partition、1副本的集群
<!-- 集群配置 -->
<clickhouse_remote_servers>
<!-- 3分片1备份 -->
<cluster_3shards_1replicas>
<!-- 数据分片1 -->
<shard>
<replica>
<host>192.168.1.128</host>
<port>9000</port>
</replica>
</shard>
<!-- 数据分片2 -->
<shard>
<replica>
<host>192.168.1.129</host>
<port>9000</port>
</replica>
</shard>
<!-- 数据分片3 -->
<shard>
<replica>
<host>192.168.1.130</host>
<port>9000</port>
</replica>
</shard>
</cluster_3shards_1replicas>
</clickhouse_remote_servers>
</yandex>
cluster_3shards_1replicas: 是定义的集群名,可以随便定义
shard: 分片配置端
replica: 分片的副本配置段
可以看到每个shard只有一个 replica ,此时集群只做了数据分片,但是是非高可用的。如果要给3个分片加一个副本,集群得添加3台主机,分别作为添加到3个shard的replica段。
修改zookeeper信息
<zookeeper>
<node>
<host>192.168.1.128</host>
<port>2181</port>
</node>
<node>
<host>192.168.1.129</host>
<port>2181</port>
</node>
<node>
<host>192.168.1.130</host>
<port>2181</port>
</node>
zookeeper 用于存储clickhouse的元数据,可以无限横向扩展的clickhouse节点依赖于zookeeper 的服务发现和元数据管理
修改存储数据的路径
<path>/data/clickhouse/data/</path>
<tmp_path>/data/clickhouse/tmp/</tmp_path>
<user_files_path>/data/clickhouse/user_files</user_files_path>
<listen_host>0.0.0.0</listen_host>
三个path的路径默认都在 /var/lib/clickhouse ,可以手动指定到自定义的数据存储的路径
listen_host 默认只监听到localhost(127.0.0.1),集群跨主机通信会有问题,因此须要修改为监听到所有ip。
4、修改macros
macros 相当于是每个cliclhouse的环境变量。定义macros的作用在于可以用同一个包含macros变量的 SQL在所有的 clickhouse-server节点上执行。
192.168.1.128 节点配置如下
<macros>
<shard>01</shard>
<replica>01</replica>
</macros>
192.168.1.129 节点配置如下
<macros>
<shard>02</shard>
<replica>01</replica>
</macros>
192.168.1.130 节点配置如下
<macros>
<shard>03</shard>
<replica>01</replica>
</macros>
启动clickhouse
sudo systemctl start cliclhouse-server
查看集群节点信息
>>> clickhouse-cli -h 192.168.1.128 --query "select * from system.clusters"
cluster_3shards_1replicas 1 1 1 192.168.1.128 ...
cluster_3shards_1replicas 1 1 1 192.168.1.129 ...
cluster_3shards_1replicas 1 1 1 192.168.1.130 ...