搭建ClickHouse集群

      網(wǎng)友投稿 1203 2022-05-29

      系統(tǒng)要求

      如果從官方倉庫安裝,需要確保您使用的是x86_64處理器構(gòu)架的Linux并且支持SSE 4.2指令集

      檢查是否支持SSE 4.2:

      命令:

      grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"

      我們推薦使用Ubuntu或者Debian。終端必須使用UTF-8編碼。基于rpm的系統(tǒng),你可以使用第三方的安裝包:https://packagecloud.io/altinity/clickhouse 或者直接安裝debian安裝包。ClickHouse還可以在FreeBSD與Mac OS X上工作。同時它可以在不支持SSE 4.2的x86_64構(gòu)架和AArch64 CPUs上編譯。

      來自packagecloud.io的ClickHouse RPM軟件包安裝(單節(jié)點(diǎn)安裝)

      1.基于腳本的安裝

      為方便起見,packagecloud.io提供了一個很好的,用戶友好的方式來添加他們腳本的回購。我們需要下載并運(yùn)行packagecloud的bash腳本,它將執(zhí)行所有必需的步驟。

      安裝腳本

      確保curl已安裝在系統(tǒng)上,

      命令:

      sudo yum install -y curl

      下載并運(yùn)行packagecloud.io提供的安裝shell腳本,

      命令:

      curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/script.rpm.sh | sudo bash

      腳本后安裝包

      首先,確保我們有可用于安裝的ClickHouse軟件包,

      命令:

      sudo yum list 'clickhouse*'

      ClickHouse包應(yīng)該列為可用,如下所示:

      有多個軟件包可用(新版本和舊工具),其中一些已經(jīng)棄用,因此無需安裝所有可用的RPM。

      現(xiàn)在讓我們安裝ClickHouse主要部件 - 服務(wù)器和客戶端應(yīng)用程序,

      命令:

      sudo yum install -y clickhouse-server clickhouse-client

      并驗(yàn)證它是否已列為已安裝,

      命令:

      sudo yum install -y clickhouse-server clickhouse-client

      并驗(yàn)證它是否已列為已安裝,

      命令:

      sudo yum list installed 'clickhouse*'

      ClickHouse軟件包應(yīng)列為已安裝,如下所示,

      確保ClicKhouse服務(wù)器正在運(yùn)行,

      命令:

      sudo /etc/init.d/clickhouse-server restart

      然后連接到它 clickhouse-client,

      命令:

      clickhouse-client

      ClickHouse服務(wù)器應(yīng)該響應(yīng),如下所示,

      至此,單機(jī)版的ClickHouse完成安裝

      2.手動安裝

      參見官方文檔

      分布式集群搭建

      1.配置文件解析

      ClickHouse有幾核心的配置文件:

      *config.xml 端口配置、本地機(jī)器名配置、內(nèi)存設(shè)置等

      *metrika.xml 集群配置、ZK配置、分片配置等

      *users.xml 權(quán)限、配額設(shè)置

      2.rpm啟動方式

      rpm安裝后,會在服務(wù)器上生成如下幾個文件:

      # 默認(rèn)配置文件位置

      root@localhost.localdomain:/ ?# ls /etc/clickhouse-server

      config.xml ?users.xml

      # 上述文件定義了默認(rèn)數(shù)據(jù)目錄,臨時目錄位置,日志目錄

      /var/lib/clickhouse

      /var/lib/clickhouse/tmp/

      /var/log/clickhouse-server

      # 默認(rèn)啟動腳本,注意,這個名字雖然叫server,其實(shí)是個shell腳本

      /etc/rc.d/init.d/clickhouse-server

      root@localhost.localdomain:/ ?# file /etc/rc.d/init.d/clickhouse-server

      /etc/rc.d/init.d/clickhouse-server: POSIX shell script, ASCII text executable, with very long lines

      # 最大文件打開數(shù)

      root@localhost.localdomain:/ ?# cat /etc/security/limits.d/clickhouse.conf

      clickhouse ? ? ?soft ? ?nofile ?262144

      clickhouse ? ? ?hard ? ?nofile ?262144

      # 默認(rèn)crontab目錄(沒啥用)

      /etc/cron.d/clickhouse-server

      # 剩下就是/usr/bin下的二進(jìn)制文件,但其實(shí)都是軟鏈接到了clickhouse這個二進(jìn)制文件

      root@localhost.localdomain:/usr/bin ?# ll | grep click -i

      -rwxr-xr-x ? ?1 root root ? ? ?63M Sep 20 16:58 clickhouse

      搭建ClickHouse集群

      lrwxrwxrwx ? ?1 root root ? ? ? 10 Dec 11 17:14 clickhouse-client -> clickhouse

      -rwxr-xr-x ? ?1 root root ? ? 3.3M Sep 20 16:58 clickhouse-compressor

      lrwxrwxrwx ? ?1 root root ? ? ? 10 Dec 11 17:14 clickhouse-server -> clickhouse

      3.注意幾個問題:

      (1)默認(rèn)的數(shù)據(jù)目錄明顯不合理,特別是對于部分機(jī)器,系統(tǒng)盤和數(shù)據(jù)盤是不同的配置,需要單獨(dú)掛載,以我們?yōu)槔覀兘y(tǒng)一使用/data1來放數(shù)據(jù),數(shù)據(jù)目錄以clickhouse命名,考慮到不用單機(jī)多實(shí)例,不以clickhouse${port}來命名

      (2)默認(rèn)的配置文件,對我們的管理也是個隱患,建議把配置文件、數(shù)據(jù)目錄、臨時目錄、日志文件,統(tǒng)一放到/data1/clickhouse里,即:

      文件夾:cores、data、還有data_old、flags、log、metadata、tmp,文件:status,

      啟動腳本:start_ck.sh(即 file /etc/rc.d/init.d/clickhouse-server)

      (3)修改默認(rèn)的shell腳本,修改默認(rèn)配置文件的位置,即上面的start_ck.sh

      4.CK里的引擎有十幾個,這里只推薦3個

      *MergeTree,是CK里最A(yù)dvanced的引擎,性能超高,單機(jī)寫入可以達(dá)到50w峰值,查詢性能非常快,有興趣看我其他文章

      *ReplicatedMergeTree,基于MergeTree,同時引入ZK,做了復(fù)制,下文會說

      *Distributed,分布式引擎,本身不存儲數(shù)據(jù),可認(rèn)為就是一張View,如果寫入,會把請求丟到集群里的節(jié)點(diǎn)(有算法控制),如果查詢,會幫你做查詢轉(zhuǎn)發(fā)再聚合返回

      5.修改配置文件

      (1)修改config.xml里對數(shù)據(jù)目錄的定義

      說明:remote_servers就是集群配置,可以直接在此處配置,也可以提出來配置到擴(kuò)展文件中。incl屬性表示可從外部文件中獲取節(jié)點(diǎn)名為clickhouse_remote_servers的配置內(nèi)容。

      使用擴(kuò)展文件,首先,添加外部擴(kuò)展配置文件。

      (2)metrika.xml

      說明:

      clickhouse_remote_servers與config.xml中的incl屬性值對應(yīng);

      cluster_3shards_1replicas是集群名,可以隨便取名;

      共設(shè)置3個分片,每個分片只有1個副本;

      (3)user.xml

      用于用戶管理

      10000000000

      0

      random

      10000000000

      0

      random

      1

      3600

      0

      0

      0

      0

      0

      967f3bf355dddfabfca1c9f5cab39352b2ec1cd0b05f9e1e6b8f629705fe7d6e

      ::/0

      default

      default

      967f3bf355dddfabfca1c9f5cab39352b2ec1cd0b05f9e1e6b8f629705fe7d6e

      ::/0

      readonly

      default

      問題:端口占用

      查看端口占用情況:

      sudo netstat -nltp | grep 9000

      sudo ?kill -9 3071

      XML 存儲

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:【樹莓派】使用0.91寸顯示屏SSD1306展示想要的內(nèi)容
      下一篇:理解C++ STL棧實(shí)現(xiàn)的3個示例程序
      相關(guān)文章
      成a人片亚洲日本久久| WWW国产亚洲精品久久麻豆| 中文字幕亚洲日本岛国片| 亚洲一区二区三区写真 | 亚洲一区中文字幕在线观看| 日韩精品一区二区亚洲AV观看| 日韩va亚洲va欧洲va国产| 亚洲热妇无码AV在线播放| 亚洲熟妇丰满多毛XXXX| 中文字幕不卡亚洲| 国产亚洲精品精品国产亚洲综合| 久久亚洲国产精品五月天婷| 国产性爱在线观看亚洲黄色一级片| 亚洲国产一区二区三区| 国产精品亚洲高清一区二区| 国产亚洲精品福利在线无卡一 | 亚洲色偷偷av男人的天堂| 亚洲色图校园春色| 亚洲激情视频图片| 亚洲乱码无人区卡1卡2卡3| 亚洲精华国产精华精华液网站| 亚洲AV无码一区二区三区久久精品| 亚洲国产美女精品久久久| 亚洲av中文无码乱人伦在线观看| 亚洲成a人无码亚洲成av无码 | 亚洲日韩AV一区二区三区中文| 亚洲熟妇av午夜无码不卡| 亚洲乱码av中文一区二区| mm1313亚洲国产精品无码试看| 亚洲高清国产拍精品青青草原 | 亚洲黄色激情视频| 日韩国产欧美亚洲v片| 亚洲A丁香五香天堂网| 狠狠综合久久综合88亚洲| 精品亚洲一区二区| 久久亚洲日韩看片无码| 99热亚洲色精品国产88| 亚洲av无码兔费综合| 亚洲精品无码日韩国产不卡?V| 亚洲欧洲日产国码av系列天堂| 亚洲午夜视频在线观看|