ClickHouse(04)如何搭建ClickHouse集群
ClickHouse集群的搭建和部署和单机的部署是类似的,主要在于配置的不一致,如果需要了解ClickHouse单机的安装设部署,可以看看这篇文章,ClickHouse(03)ClickHouse怎么安装和部署。
ClickHouse集群部署流程大概如下:
- 环境准备
- 在每台机器上安装单机版ClickHouse
- config.xml配置
- Zookeeper配置
- 进入ClickHouse测试
环境准备
- 下载安装包
按照ClickHouse(03)ClickHouse怎么安装和部署中的介绍下载即可
- 设置FQDN,也就是主机名称,命令如下
# hostnamectl --static set-hostname ck1.com
- 配置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(04)如何搭建ClickHouse集群
ClickHouse(04)如何搭建ClickHouse集群的更多相关文章
- Ubuntu 16.04下搭建kubernetes集群环境
简介 目前Kubernetes为Ubuntu提供的kube-up脚本,不支持15.10以及16.04这两个使用systemd作为init系统的版本. 这里详细介绍一下如何以非Docker方式在Ubun ...
- Ubuntu18.04 LTS 搭建Cassandra集群
环境需求 jdk8 root@node01:~# java -version java version "1.8.0_202" Java(TM) SE Runtime Enviro ...
- 04、Spark Standalone集群搭建
04.Spark Standalone集群搭建 4.1 集群概述 独立模式是Spark集群模式之一,需要在多台节点上安装spark软件包,并分别启动master节点和worker节点.master节点 ...
- 实验室中搭建Spark集群和PyCUDA开发环境
1.安装CUDA 1.1安装前工作 1.1.1选取实验器材 实验中的每台计算机均装有双系统.选择其中一台计算机作为master节点,配置有GeForce GTX 650显卡,拥有384个CUDA核心. ...
- Cloudera Manager安装_搭建CDH集群
2017年2月22日, 星期三 Cloudera Manager安装_搭建CDH集群 cpu 内存16G 内存12G 内存8G 默认单核单线 CDH1_node9 Server || Agent ...
- Linux Redis集群搭建与集群客户端实现
硬件环境 本文适用的硬件环境如下 Linux版本:CentOS release 6.7 (Final) Redis版本: Redis已经成功安装,安装路径为/home/idata/yangfan/lo ...
- 使用codis-admin搭建codis集群
目的 在Redis Codis 部署安装的文章中,介绍了通过fe在web上搭建codis的基本步骤和方法,也介绍了codis-admin的相关说明,为了更好的熟悉codis-admin的使用,本文将使 ...
- Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境
Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境 一.环境说明 个人理解:zookeeper可以独立搭建集群,hbase本身不能独立搭建集群需要和hadoo ...
- 虚拟机搭建Hadoop集群
安装包准备 操作系统:ubuntu-16.04.3-desktop-amd64.iso 软件包:VirtualBox 安装包:hadoop-3.0.0.tar.gz,jdk-8u161-linux-x ...
随机推荐
- ThreadLocal的原理及产生的问题
点赞再看,养成习惯,微信搜索「小大白日志」关注这个搬砖人. 文章不定期同步公众号,还有各种一线大厂面试原题.我的学习系列笔记. ThreadLocal的原理 特点 ThreadLocal和Sychro ...
- v-show与v-if的一次事故
v-show等同于设置dom元素的display为none,dom元素没有消失而是被隐藏了 v-if是删除或添加dom元素,频繁地删除和添加dom元素会比较耗费性能
- Bootstrap Blazor 模板使用(一)Layout 组件
原文链接:https://www.cnblogs.com/ysmc/p/16197223.html BootstrapBlazor 官网地址:https://www.blazor.zone Boots ...
- js console.log打印变量注意事项
如果是基本类型变量是没有异常的 let str = 'string' console.log(str) // string str = '改变了str变量' 如果是引用类型,打印就要注意了 let o ...
- 在字节跳动,一个更好的企业级SparkSQL Server这么做
SparkSQL是Spark生态系统中非常重要的组件.面向企业级服务时,SparkSQL存在易用性较差的问题,导致难满足日常的业务开发需求.本文将详细解读,如何通过构建SparkSQL服务器实现使用效 ...
- JS 异步与 Promise
JS 异步与 Promise 本文写于 2020 年 6 月 8 日 1. 同步与异步与回调函数 Promise 现在是前端面试必考题呀,但是先不急着看 Promise,我们首先来看看什么是异步. - ...
- Springcloud及Git线上配置详解
SpringCloud 这个阶段该如何学? 三层架构 + MVC 框架: Spring IOC AOP SpringBoot,新一代的JavaEE开发标准,自动装配 模块化~ all in one,代 ...
- 单源最短路问题:OJ5——低德地图
本题就是一道单源最短路问题.由于是稀疏图,我们采用Dijkstra算法. Dijkstra算法原理 Dijkstra算法的步骤 我们把所有的节点分为两个集合:被选中的(visited==1) 和 未被 ...
- Web 后端的一生之敌:分页器
分页器是 Web 开发中常见的功能,看似简单的却经常隐藏着各种奇怪的坑,堪称 WEB 后端开发的一生之敌. 常见问题 边翻页边写入导致内容重复 某位用户正在浏览我的博客,他看到第一页最后一篇文章是 & ...
- Python数据分析--Numpy常用函数介绍(2)
摘要:本篇我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数.学习读写文件的方法,并尝试函数式编程和NumPy线性代数运算,来学习NumPy的常用函数. ...