網(wǎng)站報(bào)價(jià)模板如何聯(lián)系百度人工客服電話
一. 副本概述
副本的目的主要是保障數(shù)據(jù)的高可用性,ClickHouse中的副本沒有主從之分。所有的副本都是平等的。
副本寫入流程:
二. 副本搭建
1. 實(shí)驗(yàn)環(huán)境
hadoop1(192.168.47.128)
hadoop2(192.168.47.129)
2. 修改配置文件
修改兩臺主機(jī)/etc/clickhouse-server/config.xml
配置文件,指定副本使用的zookeeper
<zookeeper><node><host>hadoop1</host><port>2181</port></node>
</zookeeper>
3. 啟動(dòng)服務(wù)
- 啟動(dòng)hadoop1上的zookeeper服務(wù)
[root@hadoop1 zookeeper-3.9.2]# ./bin/zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper-3.9.2/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
- 啟動(dòng)hadoop1和hadoop2的ClickHouse服務(wù)
[root@hadoop1 ~]# systemctl start clickhouse-server
[root@hadoop2 ~]# systemctl start clickhouse-server
三. 數(shù)據(jù)同步驗(yàn)證
-
在hadoop1和hadoop2建表
# hadoop1 hadoop1 :) create table t_test ( id UInt32, name String, age UInt32 ) engine =ReplicatedMergeTree('/clickhouse/table/01/t_test','rep_1') primary key (id) order by (id,name);# hadoop2 hadoop2 :) create table t_test ( id UInt32, name String, age UInt32 ) engine =ReplicatedMergeTree('/clickhouse/table/01/t_test','rep_2') primary key (id) order by (id,name);
副本表的引擎為ReplicatedMergeTree,兩張表在zookeeper的節(jié)點(diǎn)路徑是一樣的
-
在hadoop1執(zhí)行insert語句
hadoop1 :) insert into t_test values(1, 'name1', 20), (2, 'name2', 30), (3, 'name3', 15);INSERT INTO t_test FORMAT Values Query id: 6c7fb969-fbe4-4199-af27-1dbbe3c8be14 Ok.3 rows in set. Elapsed: 0.031 sec.
-
查看hadoop2數(shù)據(jù)表中的數(shù)據(jù)
hadoop2 :) select * from t_test;SELECT * FROM t_testQuery id: fef23f16-f122-45e6-bfa2-94e784a9e042┌─id─┬─name──┬─age─┐ 1. │ 1 │ name1 │ 20 │ 2. │ 2 │ name2 │ 30 │ 3. │ 3 │ name3 │ 15 │└────┴───────┴─────┘ 3 rows in set. Elapsed: 0.005 sec.
由此可以看出,hadoop1插入的數(shù)據(jù)已經(jīng)完全同步到hadoop2上了。