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集群

ClickHouse(04)如何搭建ClickHouse集群的更多相关文章

  1. Ubuntu 16.04下搭建kubernetes集群环境

    简介 目前Kubernetes为Ubuntu提供的kube-up脚本,不支持15.10以及16.04这两个使用systemd作为init系统的版本. 这里详细介绍一下如何以非Docker方式在Ubun ...

  2. Ubuntu18.04 LTS 搭建Cassandra集群

    环境需求 jdk8 root@node01:~# java -version java version "1.8.0_202" Java(TM) SE Runtime Enviro ...

  3. 04、Spark Standalone集群搭建

    04.Spark Standalone集群搭建 4.1 集群概述 独立模式是Spark集群模式之一,需要在多台节点上安装spark软件包,并分别启动master节点和worker节点.master节点 ...

  4. 实验室中搭建Spark集群和PyCUDA开发环境

    1.安装CUDA 1.1安装前工作 1.1.1选取实验器材 实验中的每台计算机均装有双系统.选择其中一台计算机作为master节点,配置有GeForce GTX 650显卡,拥有384个CUDA核心. ...

  5. Cloudera Manager安装_搭建CDH集群

    2017年2月22日, 星期三 Cloudera Manager安装_搭建CDH集群 cpu   内存16G 内存12G 内存8G 默认单核单线 CDH1_node9 Server  || Agent ...

  6. Linux Redis集群搭建与集群客户端实现

    硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...

  7. 使用codis-admin搭建codis集群

    目的 在Redis Codis 部署安装的文章中,介绍了通过fe在web上搭建codis的基本步骤和方法,也介绍了codis-admin的相关说明,为了更好的熟悉codis-admin的使用,本文将使 ...

  8. Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境

    Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境 一.环境说明 个人理解:zookeeper可以独立搭建集群,hbase本身不能独立搭建集群需要和hadoo ...

  9. 虚拟机搭建Hadoop集群

    安装包准备 操作系统:ubuntu-16.04.3-desktop-amd64.iso 软件包:VirtualBox 安装包:hadoop-3.0.0.tar.gz,jdk-8u161-linux-x ...

随机推荐

  1. python学习-Day26

    目录 今日内容详细 编程思想 面向过程编程 面向对象编程 类与对象 概念 类与对象的创建 先定义类 后产生对象 语法结构 如何产生对象 对象的实例化 绑定方法 今日内容详细 编程思想 面向过程编程 将 ...

  2. .Net Core 操作 MongoDB 常见问题及解决方案

    System.FormatException:"Element '_id' does not match any field or property of class XXXX." ...

  3. Spring (IOC)配置

    就是这个东西,里面的不同标签,所代表的不同含义 beans  里面有很多的bean  ,每一个bean都是容器里面的一个对象 1.别名alias  (另外的一个名字) XML <alias na ...

  4. Nacos在企业生产中如何使用集群环境?

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 项目源码地址:公众号回复 nacos,即可免费获取源码 前言 由于在公司,注册中心和配置中心都是 ...

  5. GO语言学习——切片三 append()方法为切片添加元素、切片的扩容策略、使用copy()函数复制切片、从切片中删除元素

    append()方法为切片添加元素 注意:通过var声明的零值切片可以在append()函数直接使用,无需初始化. var s []int s = append(s, 1, 2, 3) append( ...

  6. [源码解析] TensorFlow 分布式之 ParameterServerStrategy V1

    [源码解析] TensorFlow 分布式之 ParameterServerStrategy V1 目录 [源码解析] TensorFlow 分布式之 ParameterServerStrategy ...

  7. 什么是Docker容器?(全面了解使用)

    一:为什么需要Docker容器? 1.引入 1.1麻烦的环境部署 1.在软件开发中,最麻烦的事情之一就是环境配置.在正常情况下,如果要保证程序能运行,我们需要设置好操作系统,以及各种库和组件的安装. ...

  8. C\C++白嫖学习

    一.C语言的学习     推荐B站的郝斌老师的C语言教程,播放量可观.注意在学习前可在评论区"找宝藏". 大家可能也知道B站的小甲鱼,个人感觉内容不够优质,讲得有点粗糙,讲的故事有 ...

  9. 运维:ITSM

    IT服务管理(ITSM)是一套帮助企业对IT系统的规划.研发.实施和运营进行有效管理的方法,是一套方法论.ITSM起源于ITIL(IT Infrastructure Library,IT基础架构标准库 ...

  10. Fail2ban 配置详解 过滤器配置

    Fail2ban自带了很多相关服务日志的过滤器. ### # 包含配置 ### [INCLUDES] before = common.conf # 还包含其他文件中的配置,在加载本配置文件中配置之前先 ...