clickhouse集群部署

安装zookeeper1.1集群.note,三台服务器先按照单机部署方式1.0单机部署.note

clickhouse集群搭建详细步骤_dnice的博客-CSDN博客_clickhouse集群搭建

# 备份
cp /etc/clickhouse-server/config.xml /etc/clickhouse-server/config_bak.xml

----------- 方式一 -----------

# 三台服务器同样的操作
vim /etc/clickhouse-server/config.xml
# 找到 remote_servers 标签
<remote_servers>
    <cluster_01>   <!-- clickhouse显示名称  可以自己修改 -->
        <shard>  <!-- 一分片 -->
            <internal_replication>true</internal_replication>  <!-- 是否开启自动复制 -->
            <replica>  <!-- 副本 -->
                <host>192.168.125.167</host>  <!--指定部署了ClickHouse节点的服务器地址-->
                <port>9000</port>  <!--指定ClickHouse服务的TCP端口-->
            </replica>
        </shard>
        <shard>
            <internal_replication>true</internal_replication>  <!-- 是否开启自动复制 -->
            <replica>  <!-- 副本 -->
                <host>192.168.125.168</host>  <!--指定部署了ClickHouse节点的服务器地址-->
                <port>9000</port>  <!--指定ClickHouse服务的TCP端口-->
            </replica>
        </shard>
        <shard>
            <internal_replication>true</internal_replication>  <!-- 是否开启自动复制 -->
            <replica>  <!-- 副本 -->
                <host>192.168.125.169</host>  <!--指定部署了ClickHouse节点的服务器地址-->
                <port>9000</port>  <!--指定ClickHouse服务的TCP端口-->
            </replica>
        </shard>
    </cluster_01>
</remote_servers>
# 找到 zookeeper
<zookeeper>
    <node>
        <host>192.168.125.167</host>
        <port>2181</port>
    </node>
    <node>
        <host>192.168.125.168</host>
        <port>2181</port>
    </node>
    <node>
        <host>192.168.125.169</host>
        <port>2181</port>
    </node>
</zookeeper>

----------- 方式二 -----------

# 三台服务器同样的操作
# 新建metrika.xml 文件
vim /etc/clickhouse-server/metrika.xml
<?xml version="1.0"?>
<clickhouse>
    <clickhouse_remote_servers>  <!-- 集群设置 -->
        <cluster_01>   <!-- clickhouse显示名称  可以自己修改 -->
            <shard>  <!-- 一分片 -->
                <internal_replication>true</internal_replication>  <!-- 是否开启自动复制 -->
                <replica>  <!-- 副本 -->
                    <host>192.168.125.167</host>  <!--指定部署了ClickHouse节点的服务器地址-->
                    <port>9000</port>  <!--指定ClickHouse服务的TCP端口-->
                </replica>
            </shard>
            <shard>
                <internal_replication>true</internal_replication>  <!-- 是否开启自动复制 -->
                <replica>  <!-- 副本 -->
                    <host>192.168.125.168</host>  <!--指定部署了ClickHouse节点的服务器地址-->
                    <port>9000</port>  <!--指定ClickHouse服务的TCP端口-->
                </replica>
            </shard>
    		<shard>
                <internal_replication>true</internal_replication>  <!-- 是否开启自动复制 -->
                <replica>  <!-- 副本 -->
                    <host>192.168.125.169</host>  <!--指定部署了ClickHouse节点的服务器地址-->
                    <port>9000</port>  <!--指定ClickHouse服务的TCP端口-->
                </replica>
            </shard>
        </cluster_01>
    </clickhouse_remote_servers>
     
    <macros>
        <shard>3</shard>  <!--分片编号不能重复   如果是副本要相同-->
        <replica>192.168.125.169</replica>  <!--副本名称,创建复制表时有用,每个节点不同,整个集群唯一,建议使用主机名-->
    </macros>
     
    <!-- zookeeper 配置 集群高可用 -->
    <zookeeper-servers>
        <node>
            <host>192.168.125.167</host>
            <port>2181</port>
        </node>
        <node>
            <host>192.168.125.168</host>
            <port>2181</port>
        </node>
        <node>
            <host>192.168.125.169</host>
            <port>2181</port>
        </node>
    </zookeeper-servers>

</clickhouse>

根节点必须是clickhouse(新版)或yarn(旧版)

注意:macros每台机器不同

vim /etc/clickhouse-server/config.xml
# 找到 remote_server 原标签删除后添加如下四行
# 如果不删除 remote_server 原标签,那么四行内容放到remote_server 原标签前面
<remote_servers incl="clickhouse_remote_servers" />
<zookeeper incl="zookeeper-servers" optional="true" />
<macros incl="macros" optional="true" />
<include_from>/etc/clickhouse-server/metrika.xml</include_from>
# 重启服务
systemctl restart clickhouse-server
systemctl status clickhouse-server

clickhouse-client
# 测试集群情况
select * from system.clusters

创建本地表,实际存储数据的位置

# 创建本地表,注意集群名字
CREATE TABLE enic_test_local ON CLUSTER cluster_01 (
id Int16,
name String,
birth Date
)ENGINE = MergeTree()
PARTITION BY toYYYYMM(birth)
ORDER BY id;

insert into enic_test_local values(1, 'test1', '2022-02-01'), (2, 'test2', '2022-03-01'), (3, 'test3', '2022-04-01');

select * from enic_test_local;

DROP TABLE enic_test_local ON CLUSTER cluster_01;

创建分布式表,查看聚合以后的数据

CREATE TABLE enic_test ON CLUSTER cluster_01
engine = Distributed(cluster_01 , default, enic_test_local,rand());

insert into enic_test values(1, 'test1', '2022-02-01'), (2, 'test2', '2022-03-01'), (3, 'test3', '2022-04-01');

select * from enic_test;

DROP TABLE enic_test ON CLUSTER cluster_01;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值