首页 > 其他分享 >Clickhouse集群扩容和收缩

Clickhouse集群扩容和收缩

时间:2023-03-17 15:45:56浏览次数:45  
标签:xh 副本 mytest 收缩 集群 21.198 9000 节点 Clickhouse

集群节点信息

节点 IP
Clickhouse node1 21.198.165.19
Clickhouse node2 21.198.165.20
Clickhouse node3 21.198.165.21
集群配置信息 没有做分片,只是做了副本。
    <remote_servers>
        <!-- 集群名称,确保和config.xml中的<remote_servers incl="clickhouse_cluster_name" />的incl的中的参数一致-->
        <clickhouse_test>
            <!--分片1-->
            <shard>
                <!-- 表示是否只将数据写入其中一个副本,默认为false,表示写入所有副本,在复制表的情况下可能会导致重复和不一致,所以这里一定要改为true。-->
                <internal_replication>true</internal_replication>
                <replica>
                    <host>xh-mytest-ck01</host>
                    <port>9000</port>
                </replica>
                <!--复制集1-->
                <replica>
                    <host>xh-mytest-ck02</host>
                    <port>9000</port>
                </replica>
                <!--复制集2-->
                <replica>
                    <host>xh-mytest-ck03</host>
                    <port>9000</port>
                </replica>
            </shard>
        </clickhouse_test>
    </remote_servers>

查看一下集群现状:

) select * from cluster;

SELECT *
FROM cluster

Query id: 89bfb719-447a-445c-8e30-fd5f62fc3415


0 rows in set. Elapsed: 0.002 sec. 

Received exception from server (version 23.2.3):
Code: 60. DB::Exception: Received from localhost:9000. DB::Exception: Table system.cluster doesn't exist. (UNKNOWN_TABLE)

xh-mytest-ck01.sci-inv.cn :) select * from clusters;

SELECT *
FROM clusters

Query id: 29f7cacf-5ab4-46bd-a6c2-b2ec3be5ca93

┌─cluster─────────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name──────┬─host_address──┬─port─┬─is_local─┬─user────┬─default_database─┬─errors_count─┬─slowdowns_count─┬─estimated_recovery_time─┐
│ clickhouse_test │         1 │            1 │           1 │ xh-mytest-ck01 │ 21.198.165.19 │ 9000 │        1 │ default │                  │            0 │               0 │                       0 │
│ clickhouse_test │         1 │            1 │           2 │ xh-mytest-ck02 │ 21.198.165.20 │ 9000 │        0 │ default │                  │            0 │               0 │                       0 │
│ clickhouse_test │         1 │            1 │           3 │ xh-mytest-ck03 │ 21.198.165.21 │ 9000 │        0 │ default │                  │            0 │               0 │                       0 │
└─────────────────┴───────────┴──────────────┴─────────────┴────────────────┴───────────────┴──────┴──────────┴─────────┴──────────────────┴──────────────┴─────────────────┴─────────────────────────┘

 

移除副本 副本节点下线,主副本仍然保留相同的数据,因此不需要对副本节点数据进行备份。 主副本和副本间是对等的,因此下线主副本和副本原理相同,下线主副本后,副本会选举成为主副本提供服务。 现在将第三个节点下线。 从集群配置中移除第三个节点的副本配置,修改成如下配置。
    <remote_servers>
        <!-- 集群名称,确保和config.xml中的<remote_servers incl="clickhouse_cluster_name" />的incl的中的参数一致-->
        <clickhouse_test>
            <!--分片1-->
            <shard>
                <!-- 表示是否只将数据写入其中一个副本,默认为false,表示写入所有副本,在复制表的情况下可能会导致重复和不一致,所以这里一定要改为true。-->
                <internal_replication>true</internal_replication>
                <replica>
                    <host>xh-mytest-ck01</host>
                    <port>9000</port>
                </replica>
                <!--复制集1-->
                <replica>
                    <host>xh-mytest-ck02</host>
                    <port>9000</port>
                </replica>
            </shard>
        </clickhouse_test>
    </remote_servers>
zookeeper已经支持动态修改配置信息,移除节点配置后,不用重启。 修改完成后,再次查看集群的信息:
:) select * from clusters;

SELECT *
FROM clusters

Query id: 1ee7baf4-3569-48b0-b7bf-c073b5ec2bb0

┌─cluster─────────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name──────┬─host_address──┬─port─┬─is_local─┬─user────┬─default_database─┬─errors_count─┬─slowdowns_count─┬─estimated_recovery_time─┐
│ clickhouse_test │         1 │            1 │           1 │ xh-mytest-ck01 │ 21.198.165.19 │ 9000 │        1 │ default │                  │            0 │               0 │                       0 │
│ clickhouse_test │         1 │            1 │           2 │ xh-mytest-ck02 │ 21.198.165.20 │ 9000 │        0 │ default │                  │            0 │               0 │                       0 │
└─────────────────┴───────────┴──────────────┴─────────────┴────────────────┴───────────────┴──────┴──────────┴─────────┴──────────────────┴──────────────┴─────────────────┴─────────────────────────┘

2 rows in set. Elapsed: 0.003 sec. 
至此,移除节点操作就结束了!   增加副本 增加副本节点,仅需要修改新节点配置,然后执行建库和建表语句,语句执行后会从ZooKeeper中取主节点信息,然后同步数据。但是这样主节点没有副本节点信息,执行查询语句时只会选择主节点,而副本节点查询语句可以在主节点和副本节点间随机选择,建议主节点同样修改配置,使得主节点副本节点配置保持一致。   这里仍然使用上面的环境做测试。 在将节点添加到集群之前,将上面的数据清理掉,模拟一个新的环境。 将新增节点添加到集群:
    <remote_servers>
        <!-- 集群名称,确保和config.xml中的<remote_servers incl="clickhouse_cluster_name" />的incl的中的参数一致-->
        <clickhouse_test>
            <!--分片1-->
            <shard>
                <!-- 表示是否只将数据写入其中一个副本,默认为false,表示写入所有副本,在复制表的情况下可能会导致重复和不一致,所以这里一定要改为true。-->
                <internal_replication>true</internal_replication>
                <replica>
                    <host>xh-mytest-ck01</host>
                    <port>9000</port>
                </replica>
                <!--复制集1-->
                <replica>
                    <host>xh-mytest-ck02</host>
                    <port>9000</port>
                </replica>
                <!--复制集2-->
                <replica>
                    <host>xh-mytest-ck03</host>
                    <port>9000</port>
                </replica>
            </shard>
        </clickhouse_test>
    </remote_servers>
添加后,查看集群的信息。可以看到,新的节点已经可以看到了。
:) select * from clusters;

SELECT *
FROM clusters

Query id: 0e1942f4-8422-44ea-89b0-6ee045b98a46

┌─cluster─────────┬─shard_num─┬─shard_weight─┬─replica_num─┬─host_name──────┬─host_address──┬─port─┬─is_local─┬─user────┬─default_database─┬─errors_count─┬─slowdowns_count─┬─estimated_recovery_time─┐
│ clickhouse_test │         1 │            1 │           1 │ xh-mytest-ck01 │ 21.198.165.19 │ 9000 │        0 │ default │                  │            0 │               0 │                       0 │
│ clickhouse_test │         1 │            1 │           2 │ xh-mytest-ck02 │ 21.198.165.20 │ 9000 │        0 │ default │                  │            0 │               0 │                       0 │
│ clickhouse_test │         1 │            1 │           3 │ xh-mytest-ck03 │ 21.198.165.21 │ 9000 │        1 │ default │                  │            0 │               0 │                       0 │
└─────────────────┴───────────┴──────────────┴─────────────┴────────────────┴───────────────┴──────┴──────────┴─────────┴──────────────────┴──────────────┴─────────────────┴─────────────────────────┘

3 rows in set. Elapsed: 0.003 sec.
 
创建数据库和表。创建好库和表之后,会自动同步数据。  

标签:xh,副本,mytest,收缩,集群,21.198,9000,节点,Clickhouse
From: https://www.cnblogs.com/abclife/p/17227016.html

相关文章

  • TIDB集群安装
    1.TIDB的官方架构2.TIDB部署硬件要求实例最低要求2tidb3pd3tikv,基础oltp集群轻量htap集群1-2tiflash节点实时数仓集群功能:1-2ticdc集群3.集群安装3.1.环境要求 ......
  • 集群版datahub安装卸载
      cd /home/datahubcd/k8s/datahubhelm uninstall datahubkubectl get jobkubectl delete job datahub-datahub-upgrade-jobkubectl delete job dat......
  • Ubuntu20.04搭建k8s集群
    前言服务器统一版本Ubuntu20.04搭建集群最少要两台服务器每台服务器都需要docker、环境配置、安装kubeadm、kubelet和kubectldocker安装dockersudoa......
  • MongoDB 分片集群-Sharded Cluster【转】
    1、分片概念分片(sharding)是一种跨多台机器分布数据的方法,MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署。换句话说:分片(sharding)是指将数据拆分,将其分......
  • Nacos 集群
      Nacos集群架构的设计要点微服务并不是直接通过IP地址访问后端服务,而是采用域名访问。通过DNS(域名解析服务)转换为具体的IP地址,通过域名方式屏蔽后端容易产生......
  • Kubernetes 集群介绍(一)
    部署方式变迁在服务部署上主要经历了三个历程:传统部署:互联网早期,会将服务直接部署到物理机上优点:简单,不需要其他技术的参与缺点:不能灵活定义资源使用边界,很难合理分配计算机......
  • docker系列<七>容器集群 Docker-Swarm
    1、什么是docker集群?docker集群是指多个docker主机集中在一起,如下图:  2、为什么要使用docker集群?一般情况下一台服务器是部署一个docker,一个客户端使用http/https去......
  • 【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
    问题描述使用AzureKubernetes服务(AKS),可以通过kubectl连接pod中查看日志,但是如何来查看节点的系统日志呢?如是否有ubuntu系统升级的记录? 问题解答是的,可以进入AKS......
  • Centos7的kafka集群搭建
    CentOS7搭建kafka集群原创 莫问 记录栈 2022-11-1619:49 发表于陕西收录于合集#centos6个#kafka1个#linux9个#kafka集群1个/***@系统:CentOSLinux......
  • 故障etcd 节点 加入现有集群
    故障etcd节点加入现有集群恢复步骤:1、查看故障节点的etcd状态并关闭服务    systemctlstatusetcd &&  systemctlstopetcd 2、列出现有的集群节点IDE......