• ClickHouse(04)如何搭建ClickHouse集群


    ClickHouse集群的搭建和部署和单机的部署是类似的,主要在于配置的不一致,如果需要了解ClickHouse单机的安装设部署,可以看看这篇文章,ClickHouse(03)ClickHouse怎么安装和部署

    ClickHouse集群部署流程大概如下:

    1. 环境准备
    2. 在每台机器上安装单机版ClickHouse
    3. config.xml配置
    4. Zookeeper配置
    5. 进入ClickHouse测试

    环境准备

    1. 下载安装包

    按照ClickHouse(03)ClickHouse怎么安装和部署中的介绍下载即可

    1. 设置FQDN,也就是主机名称,命令如下
    # hostnamectl --static set-hostname ck1.com
    1. 配置hosts文件
    # cat /etc/hosts
    ……
    10.37.129.10 ck1
    10.37.129.11 ck2

    在每台机器上安装单机版ClickHouse

    按照ClickHouse(03)ClickHouse怎么安装和部署中的介绍安装即可

    config.xml配置

    要配置集群,需要在 /etc/clickhouse-server/config.xml的 <remote_servers> 标签下添加相关集群信息。或者在/etc/metrika.xml中进行配置,这二者选其中一个就可以。

    每一台机器的congfig.xml或者metrika.xml都要写入这样的配置。

    如果在config.xml中配置

    # 全局配置config.xml文件中引入metrika.xml
    <include_from>/etc/clickhouse-server/metrika.xml</include_from>
    #引用zookeeper配置的定义
    <zookeeper incl="zookeeper-servers" optional="true" />
    <remote_servers>
    <test_cluster1>
    <shard>
    <replica>
    <host>ck1</host>
    <port>9000</port>
    </replica>
    </shard>
    <shard>
    <replica>
    <host>ck2</host>
    <port>9000</port>
    </replica>
    </shard>
    </test_cluster1>
    </remote_servers>

    如果在metrika.xml中配置

    <yandex>
    <clickhouse_remote_servers>
    <!--自定义集群名称-->
    <test_cluster1>
    <!--定义集群的分片数量,2个shard标签说明有2个节点-->
    <shard>
    <!--定义分片的副本数量,这里副本只有1个-->
    <replica>
    <host>ck1</host>
    <port>9000</port>
    </replica>
    </shard>
    <shard>
    <replica>
    <host>ck2</host>
    <port>9000</port>
    </replica>
    </shard>
    </test_cluster1>
    </clickhouse_remote_servers>
    </yandex>

    Zookeeper的配置

    zookeeper在clickhouse中主要用在副本表数据的同步(ReplicatedMergeTree引擎)以及分布式表(Distributed)的操作上,zookeeper不参与任何实质性的数据传输。

    在/etc/clickhouse-server目录下创建一个metrika.xml的配置文件(如果已存在,则直接往里面写入即可),新增内容:

    # 类似这样子,host 和 port填上自己的
    <zookeeper-servers>
    <node index="1">
    <host>10.10.1.20</host>
    <port>2181</port>
    </node>
    <node index="2">
    <host>10.10.1.21</host>
    <port>2181</port>
    </node>
    <node index="3">
    <host>10.10.1.22</host>
    <port>2181</port>
    </node>
    </zookeeper-servers>

    进入ClickHouse测试

    配置完之后,无需重启clickhouse服务,clickhouse会热加载这些配置。我们可以分别登陆所有clickhouse,通过 select * from system.clusters; 查看当前节点所属集群的相关信息:

    进入ClickHouse客户端

    clickhouse-client --host="127.0.0.1" --port="9000" --user="****" --password="****"

    当前节点所属集群的相关信息

    select * from system.clusters where cluster = 'test_cluster1';

    查询结果

    SELECT *
    FROM system.clusters
    WHERE cluster = 'test_cluster1'
    Query id: eb2064de-92f3-41b0-ac74-6b025d5082a1
    ┌─cluster──────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name─────┬─host_address──┬─port─┬─is_local─┬─user────┬─default_database─┬─errors_count─┬─slowdowns_count─┬─estimated_recovery_time─┐
    │ test_cluster1 │ 1 │ 1 │ 1 │ ck1 │ 10.37.129.10 │ 9000 │ 0 │ default │ │ 0 │ 0 │ 0 │
    │ test_cluster1 │ 2 │ 1 │ 1 │ ck2 │ 10.37.129.11 │ 9000 │ 1 │ default │ │ 0 │ 0 │ 0 │
    └──────────────┴───────────┴──────────────┴─────────────┴───────────────┴───────────────┴──────┴──────────┴─────────┴──────────────────┴──────────────┴─────────────────┴─────────────────────────┘
    3 rows in set. Elapsed: 0.002 sec.

    到了这里,就完成clickhouse 2shard1replica集群部署。

    注意,clickhouse集群是非主从结构,各个节点是相互独立的。因此,和hdfs、yarn的集群不同,我们可以根据配置,灵活的配置集群,甚至可以将一个节点同时分配给多个集群。

    ClickHouse相关资料分享

    ClickHouse经典中文文档分享

    文章参考:ClickHouse(04)如何搭建ClickHouse集群

  • 相关阅读:
    【Svelte】-(5)DOM事件 / 事件修饰符 / 组件事件 / 事件转发 (组件之间的事件沟通)
    Kubernetes 的 crictl 和 ctr 管理命令
    Python 数据分析函数汇总
    三百六十行行行出状元之短视频入门必备技巧——配音
    flink的窗口
    【简单学习一下卷积神经网络】-基于肆十二的高考例子
    HOLMES通过关联可疑信息流进行实时 APT 检测
    【C++设计模式之状态模式:行为型】分析及示例
    技术应用:使用Spring Boot和Vue.js构建前后端分离的JWT认证应用
    Vue3文件拖拽上传
  • 原文地址:https://www.cnblogs.com/the-pig-of-zf/p/16471577.html