美文网首页ClickHouse学习笔记
常见ClickHouse集群部署架构

常见ClickHouse集群部署架构

作者: gaofubao | 来源:发表于2020-12-31 21:38 被阅读0次

一 概述

ClickHouse不同于Elasticsearch、HDFS这类主从架构的分布式系统,它采用多主(无中心)架构,集群中的每个节点角色对等,客户端访问任意一个节点都能得到相同的效果。

ClickHouse借助分片将数据进行横向切分,而分片依赖集群,每个集群由1到多个分片组成,每个分片对应了CH的1个服务节点;分片数量的上限取决与节点数量(1个分片只能对应1个服务节点)。

但是ClickHouse并不像其他分布式系统那样,拥有高度自动化的分片功能;CH提供了本地表与分布式表的概念;一张本地表等同于一个数据分片。而分布式表是张逻辑表,本身不存储任何数据,它是本地表的访问代理,其作用类似分库中间件。借助分布式表,能够代理访问多个数据分片,从而实现分布式查询。当然,也可以在应用层实现数据分发。

ClickHouse同时支持数据副本,其副本概念与Elasticsearch类似,但在CH中分片其实是一种逻辑概念,其物理承载是由副本承担的。

ClickHouse的数据副本一般通过ReplicatedMergeTree复制表系列引擎实现,副本之间借助ZooKeeper实现数据的一致性。此外也可通过分布式表负责同时进行分片和副本的数据写入工作。

二 集群部署架构

以四节点实现多分片和双副本为例:

方案一

方案一.png

(上图中shard作为主副本)
在每个节点创建一个数据表,作为一个数据分片,使用ReplicatedMergeTree表引擎实现数据副本,而分布表作为数据写入和查询的入口。
这是最常见的集群实现方式。

方案二

方案二.png

在每个节点创建一个数据表,作为一个数据分片,分布表同时负责分片和副本的数据写入工作。
这种实现方案下,不需要使用复制表,但分布表节点需要同时负责分片和副本的数据写入工作,它很有可能称为写入的单点瓶颈。

方案三

方案三.png

在每个节点创建一个数据表,作为一个数据分片,同时创建两个分布表,每个分布表只纳管一半的数据。
副本的实现仍需要借助ReplicatedMergeTree类表引擎。

方案四

方案四.png

在每个节点创建两个数据表,同一数据分片的两个副本位于不同节点上,每个分布式表纳管一般的数据。
这种方案可以在更少的节点上实现数据分布与冗余,但是部署上略显繁琐。

三 总结

  • CH的分片与副本功能完全靠配置文件实现,无法自动管理,所以当集群规模较大时,集群运维成本较高
  • 数据副本依赖ZooKeeper实现同步,当数据量较大时,ZooKeeper可能会称为瓶颈
  • 如果资源充足,建议使用方案一,主副本和副副本位于不同节点,以更好地实现读写分离与负载均衡
  • 如果资源不够充足,可以使用方案四,每个节点承载两个副本,但部署方式上略复杂

参考:《ClickHouse原理解析与应用实践》

相关文章

  • ClickHouse集群部署

    一 环境准备 下文以常见ClickHouse集群部署架构[https://www.jianshu.com/p/f1...

  • 常见ClickHouse集群部署架构

    一 概述 ClickHouse不同于Elasticsearch、HDFS这类主从架构的分布式系统,它采用多主(无中...

  • ClickHouse集群部署

    集群节点信息 192.168.175.212 ch01192.168.175.213 ch02192.168.17...

  • ClickHouse分布式集群搭建指南

    阅读此文,你会了解ClickHouse的相关知识及ClickHouse分布式集群部署方案的搭建指南,如果你对Cli...

  • clickhouse-部署详解

    Clickhouse 安装部署 部署为3个节点的集群,数据无副本。单机则不需要配置metrika.xml文件即可。...

  • 二进制方式部署k8s集群

    目标任务: 1、Kubernetes集群部署架构规划 2、部署Etcd集群 3、在Node节点安装Docker 4...

  • Redis 集群

    节点 Redis集群提供分片部署,是最常见的线上部署方式,集群和单机节点不一样,集群只有一个库,集群常见最少6节点...

  • 面试 | Spark知识点@20190102

    Spark基本架构 从集群部署的角度来看,Spark集群由集群管理器(Cluster Manager)、工作节点(...

  • clickhouse集群容器化部署

    准备工作 clickhouse节点分布 10.100.1.245 10.100.1.246 10.100.1.24...

  • ClickHouse基于复制的故障恢复测试

    在之前的博客中,我们讨论了ClickHouse的最佳架构,其中考虑了两点扩展性,即集群机器越多,性能越高,集群性能...

网友评论

    本文标题:常见ClickHouse集群部署架构

    本文链接:https://www.haomeiwen.com/subject/einroktx.html