ClickHouse副本搭建

一. 副本概述

副本的目的主要是保障数据的高可用性,ClickHouse中的副本没有主从之分。所有的副本都是平等的。

副本写入流程:

二. 副本搭建
1. 实验环境
bash 复制代码
hadoop1(192.168.47.128)
hadoop2(192.168.47.129)
2. 修改配置文件

修改两台主机/etc/clickhouse-server/config.xml配置文件,指定副本使用的zookeeper

bash 复制代码
<zookeeper>
   <node>
       <host>hadoop1</host>
       <port>2181</port>
   </node>
</zookeeper>
3. 启动服务
  1. 启动hadoop1上的zookeeper服务
bash 复制代码
[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
  1. 启动hadoop1和hadoop2的ClickHouse服务
bash 复制代码
[root@hadoop1 ~]# systemctl  start clickhouse-server
bash 复制代码
[root@hadoop2 ~]# systemctl  start clickhouse-server
三. 数据同步验证
  1. 在hadoop1和hadoop2建表

    bash 复制代码
    # 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的节点路径是一样的

  2. 在hadoop1执行insert语句

    bash 复制代码
    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.
  3. 查看hadoop2数据表中的数据

    bash 复制代码
    hadoop2 :) select * from t_test;
    
    SELECT *
    FROM t_test
    
    Query 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插入的数据已经完全同步到hadoop2上了。

相关推荐
波波仔862 天前
clickhouse表存储引擎
clickhouse·表存储引擎
波波仔862 天前
clickhouse存储和分区
clickhouse·排序·分区
波波仔862 天前
clickhouse insert与update区别
clickhouse·insert·update
波波仔862 天前
clickhouse简介
数据库·clickhouse
深色風信子2 天前
ClickHouse 快速入门
clickhouse·列式存储
波波仔862 天前
行存储与列存储的区别
数据库·clickhouse·行存储·列储存
吃喝不愁霸王餐APP开发者2 天前
霸王餐用户行为埋点:Kafka Connect+ClickHouse实时OLAP分析
分布式·clickhouse·kafka
honder试试3 天前
客户端连接Clickhouse连不上解决方案
java·clickhouse
honder试试4 天前
Centos7从0-1安装部署Clickhouse验证与Mysql实时同步
数据库·mysql·clickhouse
soft20015254 天前
ClickHouse 常见面试题
clickhouse