ClickHouse(04)如何搭建ClickHouse集群

打印 上一主题 下一主题

主题 637|帖子 637|积分 1911

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

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


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

  • 设置FQDN,也就是主机名称,命令如下
  1. # hostnamectl --static set-hostname ck1.com
复制代码

  • 配置hosts文件
  1. # cat /etc/hosts
  2. ……
  3. 10.37.129.10 ck1
  4. 10.37.129.11 ck2
复制代码
在每台机器上安装单机版ClickHouse

按照ClickHouse(03)ClickHouse怎么安装和部署中的介绍安装即可
config.xml配置

要配置集群,需要在 /etc/clickhouse-server/config.xml的  标签下添加相关集群信息。或者在/etc/metrika.xml中进行配置,这二者选其中一个就可以。
每一台机器的congfig.xml或者metrika.xml都要写入这样的配置。
如果在config.xml中配置
  1. # 全局配置config.xml文件中引入metrika.xml
  2. <include_from>/etc/clickhouse-server/metrika.xml</include_from>
  3. #引用zookeeper配置的定义
  4. <zookeeper incl="zookeeper-servers" optional="true" />
  5. <remote_servers>
  6.         <test_cluster1>
  7.             <shard>
  8.                 <replica>
  9.                     <host>ck1</host>
  10.                     <port>9000</port>
  11.                 </replica>
  12.             </shard>
  13.             <shard>
  14.                 <replica>
  15.                     <host>ck2</host>
  16.                     <port>9000</port>
  17.                 </replica>
  18.             </shard>
  19.         </test_cluster1>
  20. </remote_servers>
复制代码
如果在metrika.xml中配置
  1. <yandex>
  2.     <clickhouse_remote_servers>
  3.         
  4.         <test_cluster1>
  5.             
  6.             <shard>
  7.                
  8.                 <replica>
  9.                     <host>ck1</host>
  10.                     <port>9000</port>
  11.                 </replica>
  12.             </shard>
  13.             <shard>
  14.                 <replica>
  15.                     <host>ck2</host>
  16.                     <port>9000</port>
  17.                 </replica>
  18.             </shard>
  19.         </test_cluster1>
  20.     </clickhouse_remote_servers>
  21. </yandex>
复制代码
Zookeeper的配置

zookeeper在clickhouse中主要用在副本表数据的同步(ReplicatedMergeTree引擎)以及分布式表(Distributed)的操作上,zookeeper不参与任何实质性的数据传输。
在/etc/clickhouse-server目录下创建一个metrika.xml的配置文件(如果已存在,则直接往里面写入即可),新增内容:
  1. # 类似这样子,host 和 port填上自己的
  2. <zookeeper-servers>
  3.     <node index="1">
  4.         <host>10.10.1.20</host>
  5.         <port>2181</port>
  6.     </node>
  7.     <node index="2">
  8.         <host>10.10.1.21</host>
  9.         <port>2181</port>
  10.     </node>
  11.     <node index="3">
  12.         <host>10.10.1.22</host>
  13.         <port>2181</port>
  14.     </node>
  15. </zookeeper-servers>
复制代码
进入ClickHouse测试

配置完之后,无需重启clickhouse服务,clickhouse会热加载这些配置。我们可以分别登陆所有clickhouse,通过 select * from system.clusters; 查看当前节点所属集群的相关信息:
进入ClickHouse客户端
  1. clickhouse-client --host="127.0.0.1" --port="9000" --user="****" --password="****"
复制代码
当前节点所属集群的相关信息
  1. select * from system.clusters where cluster = 'test_cluster1';
复制代码
查询结果
  1. SELECT *
  2. FROM system.clusters
  3. WHERE cluster = 'test_cluster1'
  4. Query id: eb2064de-92f3-41b0-ac74-6b025d5082a1
  5. ┌─cluster──────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name─────┬─host_address──┬─port─┬─is_local─┬─user────┬─default_database─┬─errors_count─┬─slowdowns_count─┬─estimated_recovery_time─┐
  6. │ test_cluster1 │         1 │            1 │           1 │ ck1 │ 10.37.129.10 │ 9000 │        0 │ default │                  │            0 │               0 │                       0 │
  7. │ test_cluster1 │         2 │            1 │           1 │ ck2 │ 10.37.129.11 │ 9000 │        1 │ default │                  │            0 │               0 │                       0 │
  8. └──────────────┴───────────┴──────────────┴─────────────┴───────────────┴───────────────┴──────┴──────────┴─────────┴──────────────────┴──────────────┴─────────────────┴─────────────────────────┘
  9. 3 rows in set. Elapsed: 0.002 sec.
复制代码
到了这里,就完成clickhouse 2shard1replica集群部署。
注意,clickhouse集群是非主从结构,各个节点是相互独立的。因此,和hdfs、yarn的集群不同,我们可以根据配置,灵活的配置集群,甚至可以将一个节点同时分配给多个集群。
ClickHouse相关资料分享

ClickHouse经典中文文档分享
文章参考:ClickHouse(04)如何搭建ClickHouse集群

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我可以不吃啊

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表