集群节点信息
节点 | 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