ClickHouse基础知识(六):ClickHouse的副本配置

副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机,那么也可以 从其他服务器获得相同的数据。

1. 副本写入流程

2. 配置步骤

➢ 启动 zookeeper 集群

➢ 在hadoop101的/etc/clickhouse-server/config.d目录下创建一个名为metrika.xml 的配置文件,内容如下:

[root@hadoop101 config.d]$ vim metrika.xml

<?xml version="1.0"?>
<yandex>
    <zookeeper-servers>
        <node index="1">
            <host>hadoop100</host>
            <port>2181</port>
        </node>
        <node index="2">
            <host>hadoop101</host>
            <port>2181</port>
        </node>
        <node index="3">
            <host>hadoop102</host>
            <port>2181</port>
        </node>
    </zookeeper-servers>
</yandex>

➢ 同步到 hadoop100 和 hadoop102 上

[root@hadoop101 config.d]# xsync.sh metrika.xml

➢ 在 hadoop101 的/etc/clickhouse-server/config.xml 中增加

<include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>

➢ 同步到 hadoop100 和 hadoop102上

[root@hadoop101 config.d]# xsync.sh /etc/clickhouse-server/config.xml  

➢ 分别在 hadoop100 和 hadoop102 上启动 ClickHouse 服务

注意:因为修改了配置文件,如果以前启动了服务需要重启

 sudo systemctl restart clickhouse-server

注意:我们演示副本操作只需要在 hadoop100 和 hadoop101 两台服务器即可,上面 的操作,我们 hadoop102 可以你不用同步,我们这里为了保证集群中资源的一致性,做了 同步。

➢ 在 hadoop100 和 hadoop101 上分别建表

副本只能同步数据,不能同步表结构,所以我们需要在每台机器上自己手动建表

◼ hadoop100

create table t_order_rep2 (
id UInt32,
 sku_id String,
 total_amount Decimal(16,2),
 create_time Datetime
) engine =ReplicatedMergeTree('/clickhouse0325/table/01/t_order_rep','rep_100')
 partition by toYYYYMMDD(create_time)
 primary key (id)
 order by (id,sku_id);

◼ hadoop101

create table t_order_rep2 (
id UInt32,
 sku_id String,
 total_amount Decimal(16,2),
 create_time Datetime
) engine =ReplicatedMergeTree('/clickhouse0325/table/01/t_order_rep','rep_101')
 partition by toYYYYMMDD(create_time)
 primary key (id)
 order by (id,sku_id);

◼ 参数解释

ReplicatedMergeTree 中,

第一个参数是分片的 zk_path 一般按照: /clickhouse/table/{shard}/{table_name} 的格式写,如果只有一个分片就写 01 即可。

第二个参数是副本名称,相同的分片副本名称不能相同。

➢ 在 hadoop100 上执行 insert 语句

insert into t_order_rep2 values
(101,'sku_001',1000.00,'2020-06-01 12:00:00'),
(102,'sku_002',2000.00,'2020-06-01 12:00:00'),
(103,'sku_004',2500.00,'2020-06-01 12:00:00'),
(104,'sku_002',2000.00,'2020-06-01 12:00:00'),
(105,'sku_003',600.00,'2020-06-02 12:00:00');

➢ 在 hadoop101 上执行 select,可以查询出结果,说明副本配置正确

相关推荐
期待着20135 天前
ClickHouse创建分布式表
数据库·clickhouse
昨天今天明天好多天5 天前
【ClickHouse】创建表
数据库·clickhouse·oracle
从未完美过6 天前
clickhouse自增id的处理
数据库·clickhouse
sunny052966 天前
ClickHouse数据库SSL配置和SSL连接测试
数据库·clickhouse·ssl
东皋长歌6 天前
ClickHouse创建账号和连接测试
clickhouse
gengjianchun9 天前
clickhouse 安装配置
服务器·网络·clickhouse
东皋长歌9 天前
ClickHouse安装
clickhouse
大嘴吧Lucy9 天前
实战攻略 | ClickHouse优化之FINAL查询加速
数据库·mysql·clickhouse
东皋长歌9 天前
SpringBoot+ClickHouse集成
clickhouse·springboot
从未完美过9 天前
ClickHouse集成Mysql表引擎跨服务器读表说明
服务器·mysql·clickhouse