ClickHouse單節(jié)點多實例部署高可用集群

環(huán)境說明

操作系統(tǒng):ubuntu16.04
節(jié)點1:
192.168.18.61:ubuntu61
部署服務:clickhouserver(cs01-01)和 clickhouserver(cs01-02)
節(jié)點2:
192.168.18.63:ubuntu63
部署服務:clickhouserver(cs02-01)和 clickhouserver(cs02-02)
節(jié)點3:
192.168.18.62:ubuntu62
部署服務:zookeeper

cat /etc/hosts
192.168.18.61 ubuntu61
192.168.18.62 ubuntu62
192.168.18.63 ubuntu63

每個節(jié)點分別安裝ClickHouse

單節(jié)點服務多實例

復制配置文件:

sudo cp /etc/clickhouse-server/config.xml /etc/clickhouse-server/config9001.xml
sudo cp /etc/clickhouse-server/user.xml /etc/clickhouse-server/user9001.xml
sudo cp /etc/systemd/system/clickhouse-server.service /etc/systemd/system/clickhouse-server9001.service

chmod 777  /etc/clickhouse-server/config9001.xml
chown clickhouse:clickhouse /etc/clickhouse-server/config9001.xml
chown clickhouse:clickhouse /etc/clickhouse-server/user9001.xml

修改配置:

<log>/var/log/clickhouse-server/clickhouse-server9001.log</log>
<errorlog>/var/log/clickhouse-server/clickhouse-server9001.err.log</errorlog>
<http_port>8124</http_port>
<tcp_port>9001</tcp_port>
<mysql_port>9014</mysql_port>
<postgresql_port>9015</postgresql_port>
<interserver_http_port>9019</interserver_http_port>
<interserver_http_host>ubuntu61</interserver_http_host>
<listen_host>::</listen_host>
<path>/var/lib/clickhouse9001/</path>
<tmp_path>/var/lib/clickhouse9001/tmp/</tmp_path>
<user_files_path>/var/lib/clickhouse9001/user_files/</user_files_path>
<users_xml>
    <path>users9001.xml</path>
</users_xml>
<local_directory> 
    <path>/var/lib/clickhouse9001/access/</path>
</local_directory>

注意:
每個節(jié)點填寫各自的hostname

<interserver_http_host>ubuntu61</interserver_http_host>

修改啟動服務:

vi /etc/systemd/system/clickhouse-server9001.service
ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config9001.xml --pid-file=/run/clickhouse-server/clickhouse-server9001.pid

啟動服務:

systemctl start clickhouse-server9001
systemctl status clickhouse-server9001

集群配置

vi /etc/clickhouse-server/config.xml

<remote_servers>
    <cluster_3s_1r>
        <shard>
            <internal_replication>true</internal_replication>
            <replica>
                <host>ubuntu61</host>
                <port>9000</port>
                <user>default</user>
                <password>123456</password>
            </replica>
            <replica>
                <host>ubuntu63</host>
                <port>9001</port>
                <user>default</user>
                <password></password>
            </replica>
        </shard>
        <shard>
            <internal_replication>true</internal_replication>
            <replica>
                <host>ubuntu63</host>
                <port>9000</port>
                <user>default</user>
                <password></password>
            </replica>
            <replica>
                <host>ubuntu61</host>
                <port>9001</port>
                <user>default</user>
                <password></password>
            </replica>
        </shard>
    </cluster_3s_1r>
</remote_servers>
<zookeeper>
<node>
<host>ubuntu62</host>
<port>2181</port>
</node>
</zookeeper>
<macros>
        <layer>01</layer>
        <shard>01</shard>
        <replica>cluster01-01-1</replica>
</macros>

每個節(jié)點的配置文件區(qū)別:
ubuntu61分片1、副本1

<macros>
        <layer>01</layer>
        <shard>01</shard>
        <replica>cluster01-01-1</replica>
</macros>

ubuntu61分片2抗悍、副本2

<macros>
        <layer>01</layer>
        <shard>02</shard>
        <replica>cluster01-02-2</replica>
</macros>

ubuntu63分片2艰山、副本1

<macros>
        <layer>01</layer>
        <shard>02</shard>
        <replica>cluster01-02-1</replica>
</macros>

ubuntu63分片1、副本2

<macros>
        <layer>01</layer>
        <shard>01</shard>
        <replica>cluster01-01-2</replica>
</macros>

重啟服務后款青,查看集群配置是否成功

 clickhouse-client --port 9000 --password 123456
 select * from system.clusters;

測試集群

1纲酗、分別登陸每個實例client辩涝,執(zhí)行命令贸伐,創(chuàng)建數(shù)據(jù)庫

CREATE DATABASE monchickey;
show databases;

2、每個實例怔揩,創(chuàng)建復制表

CREATE TABLE monchickey.image_label ( label_id UInt32,  label_name String,  insert_time Date) ENGINE = ReplicatedMergeTree('/clickhouse/tables/01-01/image_label','cluster01-01-1',insert_time, (label_id, insert_time), 8192);

CREATE TABLE monchickey.image_label ( label_id UInt32,  label_name String,  insert_time Date) ENGINE = ReplicatedMergeTree('/clickhouse/tables/01-02/image_label','cluster01-02-2',insert_time, (label_id, insert_time), 8192);

CREATE TABLE monchickey.image_label ( label_id UInt32,  label_name String,  insert_time Date) ENGINE = ReplicatedMergeTree('/clickhouse/tables/01-02/image_label','cluster01-02-1',insert_time, (label_id, insert_time), 8192);

CREATE TABLE monchickey.image_label ( label_id UInt32,  label_name String,  insert_time Date) ENGINE = ReplicatedMergeTree('/clickhouse/tables/01-01/image_label','cluster01-01-2',insert_time, (label_id, insert_time), 8192);

3捉邢、創(chuàng)建分布式表
分布式表只是作為一個查詢引擎,本身不存儲任何數(shù)據(jù)商膊,查詢時將sql發(fā)送到所有集群分片伏伐,然后進行進行處理和聚合后將結果返回給客戶端
不需要在每個節(jié)點上都創(chuàng)建,按實際需要在指定的節(jié)點行創(chuàng)建即可

use monchickey;
CREATE TABLE image_label_all AS image_label ENGINE = Distributed(cluster_3s_1r, monchickey, image_label, rand());

4晕拆、插入數(shù)據(jù)藐翎,進行驗證
在節(jié)點1,分片1上執(zhí)行插入

use monchickey;
INSERT INTO monchickey.image_label (label_id,label_name,insert_time) VALUES (1,'aaa','2021-07-13');
INSERT INTO monchickey.image_label (label_id,label_name,insert_time) VALUES (2,'bbb','2021-07-13');

此時在其他分片節(jié)點上進行查詢实幕,能看到數(shù)據(jù)吝镣,說明集群搭建成功
在其他節(jié)點分片上進行插入

INSERT INTO monchickey.image_label (label_id,label_name,insert_time) VALUES (3,'ccc','2021-07-14');
INSERT INTO monchickey.image_label (label_id,label_name,insert_time) VALUES (4,'ddd','2021-07-15');
INSERT INTO monchickey.image_label (label_id,label_name,insert_time) VALUES (5,'eee','2021-07-16');

查看結果,觀察數(shù)據(jù)變化

select * from image_label;
select * from image_label_all;
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末昆庇,一起剝皮案震驚了整個濱河市末贾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凰锡,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件圈暗,死亡現(xiàn)場離奇詭異掂为,居然都是意外死亡,警方通過查閱死者的電腦和手機员串,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進店門勇哗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人寸齐,你說我怎么就攤上這事欲诺〕常” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵扰法,是天一觀的道長蛹含。 經常有香客問我,道長塞颁,這世上最難降的妖魔是什么浦箱? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮祠锣,結果婚禮上酷窥,老公的妹妹穿的比我還像新娘。我一直安慰自己伴网,他們只是感情好蓬推,可當我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著澡腾,像睡著了一般沸伏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛋铆,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天馋评,我揣著相機與錄音,去河邊找鬼刺啦。 笑死留特,一個胖子當著我的面吹牛,可吹牛的內容都是我干的玛瘸。 我是一名探鬼主播蜕青,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼糊渊!你這毒婦竟也來了右核?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤渺绒,失蹤者是張志新(化名)和其女友劉穎贺喝,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宗兼,經...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡躏鱼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了殷绍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片染苛。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖主到,靈堂內的尸體忽然破棺而出茶行,到底是詐尸還是另有隱情躯概,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布畔师,位于F島的核電站,受9級特大地震影響茉唉,放射性物質發(fā)生泄漏固蛾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一度陆、第九天 我趴在偏房一處隱蔽的房頂上張望艾凯。 院中可真熱鬧,春花似錦懂傀、人聲如沸趾诗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恃泪。三九已至,卻和暖如春犀斋,著一層夾襖步出監(jiān)牢的瞬間贝乎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工叽粹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留览效,地道東北人。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓虫几,卻偏偏與公主長得像锤灿,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子辆脸,可洞房花燭夜當晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內容