相关知识参考:https://www.cnblogs.com/jmx-bigdata/p/13708835.html
1、Clickhouse集群安装部署,首先安装单机版,可参考之前:https://www.cnblogs.com/biehongli/p/14364802.html,我是先安装了一台虚拟机,然后克隆了两台机器,所以,克隆完成,配置好ip地址,三台服务器的Clickhouse就安装完毕了,如果是正式环境,三台机器的安装方式就按照单机版先安装即可。此时,三台服务器的Clickhouse安装完成。
1 查看安装信息,目录结构。
2 /etc/clickhouse-server:服务端的配置文件目录,包括全局配置config.xml和用户配置users.xml等。
3 /etc/clickhouse-client:客户端配置,包括conf.d文件夹和config.xml文件。
4 /var/lib/clickhouse:默认的数据存储目录(通常会修改默认路径配置,将数据保存到大容量磁盘挂载的路径)。
5 /var/log/clickhouse-server:默认保存日志的目录(通常会修改路径配置,将日志保存到大容量磁盘挂载的路径)。
2、开始安装Zookeeper,集群安装参考:https://www.cnblogs.com/biehongli/p/7650570.html,Zookeeper集群搭建完成之后,开始整合Clickhouse和Zookeeper。启动Zookeeper集群。
1 [root@master apache-zookeeper-3.6.1-bin]# ls
2 bin conf data docs lib LICENSE.txt logs NOTICE.txt README.md README_packaging.md
3 [root@master apache-zookeeper-3.6.1-bin]# cd bin/
4 [root@master bin]# ls
5 README.txt zkCli.cmd zkEnv.cmd zkServer.cmd zkServer.sh zkSnapShotToolkit.sh zkTxnLogToolkit.sh
6 zkCleanup.sh zkCli.sh zkEnv.sh zkServer-initialize.sh zkSnapShotToolkit.cmd zkTxnLogToolkit.cmd
7 [root@master bin]#
8 [root@master bin]#
9 [root@master bin]# ./zkServer.sh status
10 ZooKeeper JMX enabled by default
11 Using config: /usr/local/soft/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
12 Client port found: 2181. Client address: localhost.
13 Error contacting service. It is probably not running.
14 [root@master bin]#
15 [root@master bin]#
16 [root@master bin]# systemctl status firewalld.service
17 ● firewalld.service - firewalld - dynamic firewall daemon
18 Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
19 Active: inactive (dead)
20 Docs: man:firewalld(1)
21 [root@master bin]# ./zkServer.sh status
22 ZooKeeper JMX enabled by default
23 Using config: /usr/local/soft/apache-zookeeper-3.6.1-bin/bin/../conf/zoo.cfg
24 Client port found: 2181. Client address: localhost.
25 Mode: follower
记得关闭三台机器的防火墙哦!
3、首先,修改/etc/clickhouse-server/目录下的config.xml。
<!-- 如果禁用了ipv6,使用下面配置 -->
<listen_host>0.0.0.0</listen_host>
<!-- 如果没有禁用ipv6,使用下面配置,我使用的下面的配置 -->
<listen_host>::</listen_host>
然后,在/etc/下创建集群配置文件metrika.xml文件(这个文件需要创建),在Clickhouse启动的时候会加载这个配置文件以集群的形式启动Clickhouse,可以选择配置不包含副本的分片配置,还可以为分片配置多个副本。
1 <yandex>
2 <!-- /etc/clickhouse-server/config.xml 中配置的remote_servers的incl属性值,-->
3 <clickhouse_remote_servers>
4 <!-- 集群名称,可以修改 -->
5 <doit_ch_cluster1>
6 <!-- 配置三个分片,每个分片对应一台机器,为每个分片配置一个副本 -->
7 <shard>
8 <internal_replication>true</intern