ClickHouse集群搭建

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

Zookeeper集群部署

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

在这里插入图片描述
关于zookeeper集群的搭建在之前搭建高可用hadoop集群中已经介绍过,点击链接即可跳转。

多ClickHouse实例准备

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

集群配置

metrika.xml

首先我们在/etc/clickhouse-server/config.d文件夹下添加一个名为metrika.xml的配置文件
在这里插入图片描述

<clickhouse_remote_servers>
<!--集群名称,clickhouse支持多集群的模式-->
    <clickhouse_cluster>
    <!--定义分片节点,这里我指定3个分片,每个分片只有1个副本,也就是它本身-->
        <shard>
             <internal_replication>true</internal_replication>
            <replica>
                <host>server1</host>
                <port>9000</port>
            </replica>
        </shard>
        <shard>
            <replica>
                <internal_replication>true</internal_replication>
                <host>server2</host>
                <port>9000</port>
            </replica>
        </shard>
        <shard>
            <internal_replication>true</internal_replication>
            <replica>
                <host>server3</host>
                <port>9000</port>
            </replica>
        </shard>
    </clickhouse_cluster>
</clickhouse_remote_servers>
<!--zookeeper集群的连接信息-->
<zookeeper-servers>
  <node index="1">
    <host>server1</host>
    <port>2181</port>
  </node>

  <node index="2">
    <host>server1</host>
    <port>2182</port>
  </node>
  <node index="3">
    <host>server1</host>
    <port>2183</port>
  </node>
</zookeeper-servers>
<!--定义宏变量,后面需要用-->
<macros>
    <replica>server1</replica>
</macros>
<!--不限制访问来源ip地址-->
<networks>
   <ip>::/0</ip>
</networks>

<!--数据压缩方式,默认为lz4-->
<clickhouse_compression>
<case>
  <min_part_size>10000000000</min_part_size>
                                             
  <min_part_size_ratio>0.01</min_part_size_ratio>                                                                                                                                       
  <method>lz4</method>
</case>
</clickhouse_compression>

</yandex>

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

config.xml

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

<!--引入metrika.xml-->
<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>
#引用Zookeeper配置的定义
<zookeeper incl="zookeeper-servers" optional="true" />
#打开注释,让其他节点访问当前节点ClickHouse
<listen_host>::</listen_host>

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

启动ClickHouse集群

  1. 启动zookeeper
zkServer.sh start zk1.cfg
zkServer.sh start zk2.cfg
zkServer.sh start zk3.cfg

在这里插入图片描述

  1. 启动ClickHouse集群
sudo clickhouse start

在这里插入图片描述

验证ClickHouse集群

启动成功后,我们启动clickhouse客户端,查询集群信息
在这里插入图片描述
可以看见我们刚刚配置的集群信息已经成功创建好啦。

使用ClickHouse访问Zookeeper

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

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

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

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

微信公众号:喜讯Xicent

image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值