前两篇文章给大家介绍了ClickHouse及其核心架构,以及ClickHouse的单机部署。但是在实际生产中我们很少会是单机运行,因此今天就给大家介绍ClickHouse集群的部署方法

Zookeeper集群部署

ClickHouse虽说不依赖Hadoop生态,但是依赖于zookeeper,作用是实现ClickHouse多个实例之间的通信。例如一个客户端向其中一个实例发起写入数据的操作,该实例接收到请求后会将操作日志写入zookeeper中,这样其他实例监听到zookeeper的变化,便从目标实例下载数据作为副本。

centos Clickhouse建表 clickhouse 搭建_xml

关于zookeeper集群的搭建在之前搭建高可用hadoop集群中已经介绍过,点击链接即可跳转。

多ClickHouse实例准备

这里我们准备3台虚拟机,分别按照单节点部署方式进行部署。如果还不知道单节点怎么部署的话,点我快速查看

集群配置

metrika.xml

首先我们在/etc/clickhouse-server/config.d文件夹下添加一个名为metrika.xml的配置文件

centos Clickhouse建表 clickhouse 搭建_xml_02


true


server1


9000


true


server2


9000


true


server3


9000


index="1">


server1


2181


index="2">


server1


2182


index="3">


server1


2183


server1


::/0


10000000000


0.01


lz4


配置好后将该配置文件分发到集群的各个节点。注意分发后同时修改宏变量macros为对应主机名喔

config.xml

配置完metrika.xml后,我们需要将metrika.xml引入配置中。config.xml就是clickhouse的全局配置。路径默认是:/etc/clickhouse-server/config.xml 在该配置文件中添加以下配置:


/etc/clickhouse-server/config.d/metrika.xml


#引用Zookeeper配置的定义


incl="zookeeper-servers" optional="true" />


#打开注释,让其他节点访问当前节点ClickHouse


::


每个节点都修改好后,下面就可以启动集群啦~

启动ClickHouse集群

  1. 启动zookeeper


zkServer.sh start zk1.cfg


zkServer.sh start zk2.cfg


zkServer.sh start zk3.cfg


centos Clickhouse建表 clickhouse 搭建_zookeeper_03

  1. 启动ClickHouse集群


sudo clickhouse start


centos Clickhouse建表 clickhouse 搭建_xml_04

验证ClickHouse集群

启动成功后,我们启动clickhouse客户端,查询集群信息

centos Clickhouse建表 clickhouse 搭建_xml_05

可以看见我们刚刚配置的集群信息已经成功创建好啦。

使用ClickHouse访问Zookeeper

在ClickHouse系统表中,提供了一张Zookeeper代理表,我们可以使用SQL轻松访问Zookeeper内的数据,不用再像以前一样使用客户端登录进去查看。

#查询Zookeeper根目录select * from system.zookeeper where path = '/'#查询ClickHouse目录select * from system.zookeeper where path = '/clickhouse'

centos Clickhouse建表 clickhouse 搭建_centos Clickhouse建表_06

好的,到这里ClickHouse集群我们就搭建完成啦,下一篇将给大家介绍ClickHouse MergeTree引擎的原理详解