7.1. 架构原理
集群由一个中心的协调节点(CN)和若干个工作节点(Worker)构成。
CN只存储和数据分布相关的元数据,实际的表数据被分成M个分片,打散到N个Worker上。这样的表被叫做“分片表”,可以为“分片表”的每一个分片创建多个副本,实现高可用和负载均衡。
客户端应用访问数据时只和CN节点交互。CN收到SQL请求后,生成分布式执行计划,并将各个子任务下发到相应的Worker节点,之后收集Worker的结果,经过处理后返回最终结果给客户端。
7.2. LXDB的节点类型
LXDB 由 CN(Coordinator)节点和 Worker 节点组成。
- CN 节点上存放元数据,负责SQL分发。
- Worker 节点上放实际的数据分片,负责计算与存储。
7.3. 单CN集群
- 基本架构/拓扑结构
特点
1:CN为独立的节点 2:使用集群中的任意一台作为CN, 3:单机模式为该模式下的特例,只有一个节点,CN与worker在一起
相关操作命令与执行步骤
1:先完成每个节点的独立部署-参考单机版 2:选定节点中的一台作为CN节点 无需执行任何命令,也可以显示设置 SELECT citus_set_coordinator_host('<hostname>') 3:在CN节点添加worker(只能在CN节点上添加) 1)先将这个节点扩进来(与添加worker是同一个命令) SELECT master_add_node('172.26.43.75',5432); 2)屏蔽CN节点,让他不作为worker节点存储数据 (如若 cn节点也想存储数据,则不执行该语句) SELECT master_set_node_property('172.26.43.75', 5432, 'shouldhaveshards', false);
一些常见命令
1) select * from pg_dist_node;//查看设置的节点状态,所谓的添加worker节点就是在 表pg_dist_node中新插入的行的nodeid列。 2)SELECT * FROM master_get_active_worker_nodes();//查看工作节点 3)SELECT master_remove_node('192.168.1.74', '5432'); //删节点 4) select * from master_update_node(123, 'new-address', 5432);//更新节点,如机器迁移
7.4. 多CN集群
- 混合使用,让worker也具备CN的功能
- 相关操作命令与操作步骤 ```sql 1:先完成单CN节点的部署,设置好worker节点,预留出slave cn的节点 2:拓展slave CN节点 原先单CN节点的CN是master CN 我们在master CN上,添加拓展slave CN
1)先将这个节点扩进来(与添加worker是同一个命令) SELECT master_add_node('172.26.43.75',5432);
2) 同步元数据信息到新的节点(参数为IP与port) select start_metadata_sync_to_node('172.26.43.75',5432);
3)设置CN节点,让他不作为worker节点存储数据 (如若 cn节点也想存储数据,则不执行该语句) SELECT master_set_node_property('172.26.43.75', 5432, 'shouldhaveshards', false);
4. CN与worker的关系
```sql
1:一台机器可以同时作为CN与Worker节点,
也可以单独作为CN与WORKER节点
2:CN节点可以存在多个,增删改查的入口
但只能有一个Master
3:操作限制
1)只能在master cn节点创建和删除表
凡是元数据的修改,只能在master CN上操作,不能在slave cn和worker上操作
2)只能在master cn节点和其他CN节点查询和插入数据
worker仅作为内部计算和存储,不对外提供服务