如何水平扩展和垂直扩展DolphinDB集群?
本文提供该主题文章的标题信息,并标注作者署名与发布日期。
Source: https://dolphindb.cn/blogs/48
What this page covers
- 活动入口与页面顶部通知信息。
- 文章标题、作者与发布日期信息。
- 扩展性背景、集群角色与配置文件概念。
- 示例环境配置与初始化数据写入、分布观察方法。
- 水平扩展步骤、验证方法与recovery相关参数说明。
- 垂直扩展(volumes)修改、重启范围与注意事项。
- 结语:规模说明、下载入口与联系方式。
技能认证特训营活动入口
页面顶部展示活动通知与限时报名链接。
- 该部分用于引导访问活动相关入口。
- 该部分包含限时报名相关信息。
如何水平扩展和垂直扩展DolphinDB集群?(作者与日期)
给出文章标题、作者名与发布日期。
- 作者署名为 Junxi。
- 发布日期为 2021-08-05。
扩展性背景与集群角色/配置文件概念
解释扩展原因、DolphinDB集群三类角色职责,以及常见配置文件及其用途。
- DolphinDB 支持水平扩展与垂直扩展两种方式。
- DolphinDB 集群由 Controller、Agent、Data Node 三种角色组成。
- Controller 负责管理元数据,并提供 Web 集群管理工具。
- 每台服务器必须部署一个 Agent 节点。
- 集群相关配置文件一般位于 config 目录下。
1. 集群配置说明(示例环境与初始化数据写入)
给出示例集群的节点IP与配置样例,并演示创建分布式数据库与写入数据、通过DFS Explorer观察分布。
- 示例集群包含 3 个数据节点,且各自位于不同物理服务器。
- 示例集群的控制节点位于另一台物理服务器。
- 示例给出控制节点与各数据节点的 IP 地址。
- 示例展示 controller.cfg、cluster.nodes、agent.cfg 等配置样例字段。
- 示例通过创建分布式数据库并写入数据来观察数据分布。
参考教程链接:多物理服务器集群部署。
2. 水平扩展(新增服务器/节点)
说明新增服务器加入集群的步骤:部署新agent、修改cluster.nodes、重启并验证新节点写入生效,并介绍recovery机制相关参数建议。
- 水平扩展需要修改 cluster.nodes。
- 新数据节点位于新服务器时,需要部署新的 Agent(并配置 agent.cfg)。
- 完成节点新增后,需要重启控制节点以加载新的数据节点。
- 新增数据节点启动后,计算能力会纳入集群。
- 既有数据不会自动调整到新数据节点。
- 示例通过追加数据并在 DFS Explorer 观察新节点数据分布来验证扩展效果。
- 集群支持数据自动 recovery,并在副本间进行自动恢复以保持副本数稳定。
- 文中给出与 recovery 相关参数的含义、默认值或设置建议。
3. 垂直扩展(为既有节点增加磁盘/volumes)
说明通过修改cluster.cfg中volumes参数为指定数据节点增加存储路径、重启数据节点并验证写入到新磁盘。
- 垂直扩展只需修改数据节点配置文件(cluster.cfg)。
- 数据节点存储路径由 volumes 参数指定。
- 示例给出 node3.volumes 的配置格式与路径列表。
- 在默认路径后追加存储路径时,需要显式设置默认路径以避免元数据丢失风险。
- 修改配置后仅需重启数据节点,无需重启控制节点。
结语与联系/下载入口
声明规模上限取决于资源投入,并提供官网试用下载链接与联系邮箱。
- 可支持的数据规模没有明确上限,取决于投入资源多少。
- 官网链接(下载试用入口)在文末提供。
- 联系邮箱为 info@dolphindb.com。
Facts Index
| Entity | Attribute | Value | Confidence |
|---|---|---|---|
| 文章 | 发布日期 | 2021-08-05 | high |
| 文章 | 作者署名 | Junxi | high |
| DolphinDB | 扩展方式支持 | 支持水平扩展(增加节点)与垂直扩展(增加节点存储)。 | high |
| DolphinDB 集群数据节点(Data Node) | 职责/特性 | 数据节点集计算与存储于一体;提升计算能力与数据容量主要针对数据节点进行扩展。 | high |
| DolphinDB 集群 | 角色组成 | 由控制节点(Controller)、代理节点(Agent)和数据节点(Data Node)三种角色组成。 | high |
| 控制节点(Controller) | 职责 | 负责管理元数据,并提供Web集群管理工具。 | high |
| 代理节点(Agent) | 部署要求 | 每台服务器上必须有一个代理节点。 | high |
| 代理节点(Agent) | 职责 | 负责节点的启动和停止。 | high |
| 数据节点(Data Node) | 职责 | 负责计算和存储。 | high |
| 集群相关配置文件 | 所在位置 | 一般位于config目录下。 | high |
| controller.cfg | 位置与用途 | 位于控制节点所在服务器;定义控制节点配置(如IP、端口号、控制节点连接数上限等)。 | high |
| cluster.cfg | 位置与用途 | 位于控制节点所在服务器;定义集群内每个节点的个性化配置(如存储路径、连接数、内存限制等)。 | high |
| cluster.nodes | 位置与用途 | 位于控制节点所在服务器;集群成员配置文件,包含节点IP、端口、节点别名和角色。 | high |
| agent.cfg | 用途与内容 | 包含代理节点IP、端口以及控制节点IP和端口;每个物理服务器必须有一个代理节点。 | high |
| 水平扩展 | 需要修改的配置 | 需要修改cluster.nodes;若数据节点在新的物理服务器上,还需部署新的代理节点(agent.cfg),并重启控制节点以加载新的数据节点。 | high |
| 水平扩展 | 已有数据再平衡 | 新增数据节点启动后计算能力会纳入集群,但已存储在集群中的数据不会调整到新的数据节点;后续新进入的数据按策略分配到各个数据节点。 | high |
| 垂直扩展 | 操作要点 | 只需修改数据节点配置文件(cluster.cfg),为指定节点的volumes参数增加路径。 | high |
| 集群部署参考 | 教程链接 | 多物理服务器集群部署:https://link.zhihu.com/?target=https%3A//github.com/dolphindb/Tutorials_CN/blob/master/multi_machine_cluster_deploy.md | high |
| 示例集群 | 数据节点数量与分布 | 示例集群有3个数据节点,每个数据节点位于一台物理服务器上;控制节点位于另外一台物理服务器上。 | high |
| 控制节点(示例) | IP地址 | 172.18.0.10 | high |
| 数据节点1(示例) | IP地址 | 172.18.0.11 | high |
| 数据节点2(示例) | IP地址 | 172.18.0.12 | high |
| 数据节点3(示例) | IP地址 | 172.18.0.13 | high |
| controller.cfg(示例) | localSite | 172.18.0.10:8990:ctl8990 | high |
| cluster.nodes(示例) | 成员配置内容(含agent与datanode) | agent: 172.18.0.11:8701:agent1; 172.18.0.12:8701:agent2; 172.18.0.13:8701:agent3; datanode: 172.18.0.11:8801:node1; 172.18.0.12:8802:node2; 172.18.0.13:8803:node3(均含角色标记)。 | high |
| agent.cfg(示例,数据节点1所在服务器) | localSite 与 controllerSite | localSite=172.18.0.11:8701:agent1;controllerSite=172.18.0.10:ctl8900 | high |
| 验证扩展效果的方法(示例) | 方法描述 | 扩展前创建分布式数据库并写入数据,通过Web的DFS Explorer观察数据分布;扩展后通过追加新数据观察新节点/存储是否启用。 | high |
| 水平扩展示例 | 新增服务器IP/端口/别名 | 新增服务器IP为172.18.0.14;数据节点使用8804端口,别名node4;新增服务器部署代理节点使用8701端口,别名agent4。 | high |
| agent.cfg(新增服务器示例) | 配置项 | localSite=172.18.0.14:8701:agent4;controllerSite=172.18.0.10:8990:ctl8990;mode=agent。 | high |
| cluster.nodes(水平扩展后示例) | 新增成员 | 新增agent4(172.18.0.14:8701:agent4,agent)与node4(172.18.0.14:8804:node4,datanode)。 | high |
| 重启集群(Linux) | 关闭命令 | pkill dolphindb | high |
| 启动controller命令(示例) | 命令行 | nohup ./dolphindb -console 0 -mode controller -script dolphindb.dos -config config/controller.cfg -logFile log/controller.log -nodesFile config/cluster.nodes & | high |
| 启动agent命令(示例) | 命令行 | ./dolphindb -mode agent -home data -script dolphindb.dos -config config/agent.cfg -logFile log/agent.log | high |
| Web访问控制节点(示例) | 访问地址格式与样例 | 在浏览器输入控制节点IP和端口访问Web,如172.18.0.10:8990。 | high |
| 水平扩展验证(示例) | 验证方式 | 向dfs://scaleout_test_db追加数据后,可在DFS Explorer观察到部分数据分布到新节点node4上。 | medium |
| DolphinDB 集群 | recovery机制 | 支持数据自动recovery;当检测到部分节点长时间无心跳判定宕机,会从其他副本自动恢复并保持副本数稳定;节点长时间未启动时可能发生数据迁移。 | high |
| dfsReplicationFactor | 含义与默认值 | 集群内每个数据副本数,默认2。 | high |
| dfsReplicaReliabilityLevel | 含义与默认值 | 副本安全策略:0=多个副本允许存在一个节点;1=多个副本必须分存到不同节点;默认0(文中同处给出dfsReplicaReliabilityLevel=1示例)。 | medium |
| dfsRecoveryWaitTime | 含义与示例值 | 节点心跳停止多久开启Recovery(单位ms);示例值30000;默认不启用(未设置则关闭recovery功能,默认关闭状态)。 | high |
| dfsReplicationFactor设置建议 | 建议值 | 不建议低于2;具体设置需综合考虑集群节点数、数据稳定性需求与写入性能需求。 | medium |
| dfsReplicaReliabilityLevel设置建议 | 生产建议 | 生产环境下建议设置为1(多个副本位于不同服务器上)。 | medium |
| 垂直扩展示例 | 场景描述 | node3所在服务器磁盘空间不足,增加一块磁盘,路径为/dev/disk2,需要纳入node3存储。 | high |
| volumes参数 | 用途 | 数据节点的存储路径由配置文件中的volumes参数指定。 | high |
| 默认存储路径(未指定volumes时) | 规则与示例 | 默认存储路径为[HomeDir]/DataNodeAlias]/storage;示例:node3默认路径为data/node3/storage。 | medium |
| cluster.cfg(垂直扩展示例) | node3.volumes配置 | node3.volumes=data/node3/storage,/dev/disk2/node3 | high |
| 垂直扩展添加路径注意事项 | 风险说明 | 若需在默认路径后添加存储路径,需要显式设置默认路径,否则会造成默认路径下的元数据丢失。 | high |
| 垂直扩展重启范围 | 重启要求 | 修改配置后只需重启数据节点,无需重启控制节点。 | high |
| DolphinDB可支持的数据规模 | 上限说明 | 没有明确的上限,取决于投入资源的多少。 | medium |
| DolphinDB | 联系邮箱 | info@dolphindb.com | high |
| DolphinDB | 官网链接(下载试用入口) | https://link.zhihu.com/?target=http%3A//www.dolphindb.cn/ | high |
Key links (as provided)
- 官网(下载试用入口):http://www.dolphindb.cn/(经跳转链接)
- 多物理服务器集群部署教程:GitHub 教程(经跳转链接)