溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

常見ClickHouse集群部署架構(gòu)是怎么樣的

發(fā)布時(shí)間:2021-12-16 16:56:10 來(lái)源:億速云 閱讀:724 作者:小新 欄目:大數(shù)據(jù)

這篇文章給大家分享的是有關(guān)常見ClickHouse集群部署架構(gòu)是怎么樣的的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來(lái)看看吧。

一 概述

ClickHouse不同于Elasticsearch、HDFS這類主從架構(gòu)的分布式系統(tǒng),它采用多主(無(wú)中心)架構(gòu),集群中的每個(gè)節(jié)點(diǎn)角色對(duì)等,客戶端訪問任意一個(gè)節(jié)點(diǎn)都能得到相同的效果。

ClickHouse借助分片將數(shù)據(jù)進(jìn)行橫向切分,而分片依賴集群,每個(gè)集群由1到多個(gè)分片組成,每個(gè)分片對(duì)應(yīng)了CH的1個(gè)服務(wù)節(jié)點(diǎn);分片數(shù)量的上限取決與節(jié)點(diǎn)數(shù)量(1個(gè)分片只能對(duì)應(yīng)1個(gè)服務(wù)節(jié)點(diǎn))。

但是ClickHouse并不像其他分布式系統(tǒng)那樣,擁有高度自動(dòng)化的分片功能;CH提供了本地表與分布式表的概念;一張本地表等同于一個(gè)數(shù)據(jù)分片。而分布式表是張邏輯表,本身不存儲(chǔ)任何數(shù)據(jù),它是本地表的訪問代理,其作用類似分庫(kù)中間件。借助分布式表,能夠代理訪問多個(gè)數(shù)據(jù)分片,從而實(shí)現(xiàn)分布式查詢。當(dāng)然,也可以在應(yīng)用層實(shí)現(xiàn)數(shù)據(jù)分發(fā)。

ClickHouse同時(shí)支持?jǐn)?shù)據(jù)副本,其副本概念與Elasticsearch類似,但在CH中分片其實(shí)是一種邏輯概念,其物理承載是由副本承擔(dān)的。

ClickHouse的數(shù)據(jù)副本一般通過ReplicatedMergeTree復(fù)制表系列引擎實(shí)現(xiàn),副本之間借助ZooKeeper實(shí)現(xiàn)數(shù)據(jù)的一致性。此外也可通過分布式表負(fù)責(zé)同時(shí)進(jìn)行分片和副本的數(shù)據(jù)寫入工作。

 

二 集群部署架構(gòu)

以四節(jié)點(diǎn)實(shí)現(xiàn)多分片和雙副本為例:

 

方案一



常見ClickHouse集群部署架構(gòu)是怎么樣的

(上圖中shard作為主副本)

在每個(gè)節(jié)點(diǎn)創(chuàng)建一個(gè)數(shù)據(jù)表,作為一個(gè)數(shù)據(jù)分片,使用ReplicatedMergeTree表引擎實(shí)現(xiàn)數(shù)據(jù)副本,而分布表作為數(shù)據(jù)寫入和查詢的入口。
這是最常見的集群實(shí)現(xiàn)方式。

 

方案二



常見ClickHouse集群部署架構(gòu)是怎么樣的在每個(gè)節(jié)點(diǎn)創(chuàng)建一個(gè)數(shù)據(jù)表,作為一個(gè)數(shù)據(jù)分片,分布表同時(shí)負(fù)責(zé)分片和副本的數(shù)據(jù)寫入工作。

這種實(shí)現(xiàn)方案下,不需要使用復(fù)制表,但分布表節(jié)點(diǎn)需要同時(shí)負(fù)責(zé)分片和副本的數(shù)據(jù)寫入工作,它很有可能稱為寫入的單點(diǎn)瓶頸。

 

方案三

常見ClickHouse集群部署架構(gòu)是怎么樣的在每個(gè)節(jié)點(diǎn)創(chuàng)建一個(gè)數(shù)據(jù)表,作為一個(gè)數(shù)據(jù)分片,同時(shí)創(chuàng)建兩個(gè)分布表,每個(gè)分布表只納管一半的數(shù)據(jù)。

副本的實(shí)現(xiàn)仍需要借助ReplicatedMergeTree類表引擎。

 

方案四

常見ClickHouse集群部署架構(gòu)是怎么樣的

在每個(gè)節(jié)點(diǎn)創(chuàng)建兩個(gè)數(shù)據(jù)表,同一數(shù)據(jù)分片的兩個(gè)副本位于不同節(jié)點(diǎn)上,每個(gè)分布式表納管一般的數(shù)據(jù)。
這種方案可以在更少的節(jié)點(diǎn)上實(shí)現(xiàn)數(shù)據(jù)分布與冗余,但是部署上略顯繁瑣。

  • CH的分片與副本功能完全靠配置文件實(shí)現(xiàn),無(wú)法自動(dòng)管理,所以當(dāng)集群規(guī)模較大時(shí),集群運(yùn)維成本較高

  • 數(shù)據(jù)副本依賴ZooKeeper實(shí)現(xiàn)同步,當(dāng)數(shù)據(jù)量較大時(shí),ZooKeeper可能會(huì)稱為瓶頸

  • 如果資源充足,建議使用方案一,主副本和副副本位于不同節(jié)點(diǎn),以更好地實(shí)現(xiàn)讀寫分離與負(fù)載均衡

  • 如果資源不夠充足,可以使用方案四,每個(gè)節(jié)點(diǎn)承載兩個(gè)副本,但部署方式上略復(fù)雜

感謝各位的閱讀!關(guān)于“常見ClickHouse集群部署架構(gòu)是怎么樣的”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI