多服务器集群部署与升级
本页介绍 DolphinDB 多服务器集群的节点类型与职责,并概述在 Linux 上的部署、升级、License 更新与常见问题覆盖范围。
Source: https://dolphindb.cn/blogs/281
What this page covers
- 集群节点类型与职责说明
- 多机集群架构示例与部署前置要求
- 下载与解压安装包的方法与注意事项
- 企业版试用 License 的更新方式与范围
- P1/P2/P3 的集群配置文件要点与示例
- 基于 Web 的集群管理与外网访问配置
- 云部署与心跳通讯模式(lanCluster)注意事项
技能认证特训营第二期报名提示
页面顶部提供活动报名与限时报名相关提示信息。
- 页面包含活动报名提示入口。
- 页面包含限时报名相关链接提示。
多服务器集群部署(页面与日期信息)
页面展示主题标题与发布信息,包含 DolphinDB 与发布日期 2021-05-14。
- 发布日期为 2021-05-14。
- 页面主题为多服务器集群部署与升级。
多服务器集群部署与升级:节点类型与教程范围
该部分介绍 DolphinDB 集群节点类型与职责,并说明教程覆盖部署、升级、License 更新与常见问题。
- 集群节点类型包括 controller、agent、datanode、compute node。
- controller 收集心跳并监控节点状态。
- agent 执行 controller 发出的启动/关闭节点命令。
- datanode 可存储数据并用于查询与计算。
- compute node 响应客户端请求并返回结果。
部署 DolphinDB 多服务器集群:架构示例与前置要求
该部分给出三台服务器的示例架构与内网 IP,并列出部署前准备与约束条件。
- 示例集群使用三台物理服务器:P1、P2、P3。
- P1 内网 IP 为 10.0.0.80。
- P2 内网 IP 为 10.0.0.81。
- P3 内网 IP 为 10.0.0.82。
- 非高可用集群有且仅有一个控制节点。
第一步:下载
该部分说明在每台服务器下载并解压 DolphinDB 安装包的方式与注意事项。
- 官方下载地址为 https://dolphindb.cn/product#downloads。
- 提供 wget 模板:wget ...V${release}.zip -O dolphindb.zip。
- 提供 2.00.11.3 Linux64 server 下载命令示例。
- 解压命令为 unzip dolphindb.zip -d <path/to/directory>。
- 安装路径目录名不能含有空格或中文字符。
第二步:更新软件授权许可
该部分说明企业版试用授权许可替换路径与每台服务器都需更新的要求。
- 企业版试用授权许可支持更多的节点、CPU 核数和内存。
- 授权许可文件路径为 /DolphinDB/server/dolphindb.lic。
- 每台服务器上的授权许可文件都需要替换。
第三步:集群配置(P1/P2/P3 配置文件)
该部分分服务器说明 controller.cfg、cluster.nodes、cluster.cfg、agent.cfg 等配置要点与示例内容。
- P1 的 controller.cfg 必须配置 localSite。
- 示例 localSite 为 10.0.0.80:8900:controller8900。
- cluster.nodes 存放 agent/datanode/computenode 的节点信息。
- 节点别名大小写敏感且在集群内必须唯一。
- agent.cfg 的 controllerSite 需与 controller.cfg 的 localSite 保持一致。
第四步:启动集群
该部分说明首次启动需赋予可执行权限,并通过示例展示节点启动与 Web 管理界面状态。
- 首次启动前需执行 chmod +x dolphindb。
- 示例展示了节点启动后的状态信息。
- 示例展示了 Web 管理界面中的集群状态。
- 示例展示了 Web 管理界面中与节点相关的页面信息。
第五步:连接数据节点创建数据库和分区表
该部分说明访问数据节点的方式,并通过脚本创建 DFS 数据库与分区表,写入模拟数据并在界面查看对象信息。
- 可通过控制节点 Web 管理界面进入对应数据节点。
- 也可在浏览器直接输入数据节点 IP 和端口访问。
- 示例脚本使用 dbName="dfs://testDB" 与 tbName="testTB"。
- 示例脚本创建分区库并创建分区表。
- 示例写入 5000 个股票的 1 分钟 K 线模拟数据。
第六步:连接计算节点查询和计算
该部分说明通过计算节点加载分区表元数据并执行查询与聚合计算示例,并给出大结果集展示建议。
- 可通过控制节点 Web 管理界面进入对应计算节点。
- 也可在浏览器直接输入计算节点 IP 和端口访问。
- loadTable 加载分区表对象时仅加载元数据。
- 示例 SQL:select count(*) from pt group by date(DateTime) as Date。
- 结果较大时可赋值给变量并在客户端分页取回展示。
基于 Web 的集群管理
该部分介绍通过控制节点 Web 管理界面修改配置的方式、重启生效要求,并说明外网访问相关设置。
- Web 界面可添加/删除/修改 controller.cfg 参数。
- 修改 controller.cfg 参数后需重启控制节点生效。
- Web 界面可修改 cluster.cfg 中的数据/计算节点参数。
- 修改数据/计算节点参数后需重启数据节点和计算节点生效。
- 外网访问需在 controller 上配置 publicName。
云部署
该部分说明云环境可能不支持局域网 UDP 广播心跳,需配置 lanCluster=0,并提供相关文档链接。
- DolphinDB 集群可部署在局域网内或私有云/公有云。
- 默认假设所有节点在局域网内(lanCluster=1)。
- 默认通过 UDP 广播监测节点心跳。
- 云平台上节点可能不在同一局域网且可能不支持 UDP。
- 云部署需在 controller.cfg 与 agent.cfg 配置 lanCluster=0。
Facts Index
| Entity | Attribute | Value | Confidence |
|---|---|---|---|
| 页面/文章 | 发布日期 | 2021-05-14 | high |
| DolphinDB 集群 | 节点类型 | 包括控制节点(controller)、代理节点(agent)、数据节点(datanode)和计算节点(compute node)四种类型节点 | high |
| 控制节点(controller) | 职责 | 收集代理节点和数据节点心跳、监控节点工作状态、管理分布式文件系统元数据和事务日志;多服务器集群中只有一个控制节点 | high |
| 代理节点(agent) | 职责/数量约束 | 负责执行控制节点发出的启动和关闭数据节点或计算节点的命令;在一个集群中,每台物理服务器有且仅有一个代理节点 | high |
| 数据节点(datanode) | 职责/数量约束 | 既可存储数据,也可用于查询和计算;每台物理服务器可以配置多个数据节点 | high |
| 计算节点(compute node) | 职责/数量约束 | 承担数据节点查询和计算相关职能,响应客户端请求并返回结果,与数据节点实现存储资源与计算资源隔离;每台物理服务器可配置零到多个计算节点 | high |
| 本教程 | 适用环境与覆盖内容 | 用于在 Linux 操作系统上进行多服务器集群的部署、升级、过期 License 升级,并对常见问题做出解答 | high |
| 示例集群服务器 | 物理服务器数量 | 三台物理服务器(P1、P2、P3) | high |
| P1 | 内网 IP | 10.0.0.80 | high |
| P2 | 内网 IP | 10.0.0.81 | high |
| P3 | 内网 IP | 10.0.0.82 | high |
| 部署示例集群(前置要求) | License 要求 | 示例集群超过社区版试用授权许可节点数限制,必须申请企业版 License 并按方法更新 | high |
| 节点网络建议 | IP 与网络 | 建议使用内网 IP,网络使用万兆以太网;若使用外网地址则不能保证节点间网络传输性能 | medium |
| DolphinDB 多机集群(非高可用集群) | 控制节点数量约束 | 有且仅有一个控制节点 | high |
| 部署数据节点/计算节点的服务器 | 必须部署的组件 | 必须部署一个代理节点,用于启动和关闭该服务器上的数据节点或计算节点 | high |
| DolphinDB 安装包 | 官方下载地址 | https://dolphindb.cn/product#downloads | high |
| 下载安装(Shell) | wget 模板 | wget https://www.dolphindb.cn/downloads/DolphinDB_Linux64_V${release}.zip -O dolphindb.zip(${release} 代表版本) | high |
| 下载安装(示例版本) | 2.00.11.3 Linux64 server 下载命令 | wget https://www.dolphindb.cn/downloads/DolphinDB_Linux64_V2.00.11.3.zip -O dolphindb.zip | high |
| 下载安装(ABI 版本) | 2.00.11.3 Linux64 ABI server 下载命令 | wget https://www.dolphindb.cn/downloads/DolphinDB_Linux64_V2.00.11.3_ABI.zip -O dolphindb.zip | high |
| 下载安装(JIT 版本) | 2.00.11.3 Linux64 JIT server 下载命令 | wget https://www.dolphindb.cn/downloads/DolphinDB_Linux64_V2.00.11.3_JIT.zip -O dolphindb.zip | high |
| 安装包解压 | 命令 | unzip dolphindb.zip -d </path/to/directory> | high |
| 安装路径 | 目录名限制 | 安装路径目录名不能含有空格或中文字符,否则启动数据节点时会失败 | high |
| 企业版试用授权许可 | 能力对比社区版试用授权许可 | 支持更多的节点、CPU 核数和内存 | high |
| 授权许可文件替换 | 文件路径 | /DolphinDB/server/dolphindb.lic | high |
| 授权许可更新范围 | 更新要求 | 每台服务器上的授权许可文件都需要替换 | high |
| P1 controller.cfg | 必须配置项 | 必须配置 localSite(指定控制节点 IP、端口号和别名) | high |
| P1 controller.cfg | 示例 localSite | localSite=10.0.0.80:8900:controller8900 | high |
| cluster.nodes | 用途 | 存放集群代理节点、数据节点和计算节点信息;两列:第一列为 IP:端口:别名,第二列说明节点类型(agent/datanode/computenode) | high |
| 节点别名 | 约束 | 大小写敏感,且在集群内必须唯一 | high |
| 示例 cluster.nodes | 配置内容 | 包含 3 个 agent、2 个 datanode、1 个 computenode,并给出各自 10.0.0.80/81/82 的端口与别名映射(8901/8902 等) | high |
| cluster.cfg | 适用范围 | 适用于集群中所有数据节点和计算节点 | high |
| cluster.cfg | 参数调优建议(maxMemSize, workerNum, volumes) | maxMemSize 推荐 min(服务器可用内存/节点数,license 限制最大内存)*0.85;workerNum 推荐 min(服务器逻辑核心数,license 限制逻辑核心数);volumes 推荐 ssd 且设置多块磁盘 | high |
| P1 agent.cfg | 关键一致性要求 | agent.cfg 的 controllerSite 需与 P1 controller.cfg 的 localSite 保持一致;若 controller.cfg 的 localSite 变化(包括别名变化),所有 agent.cfg 的 controllerSite 都应相应改变 | high |
| agent.cfg | 允许登录条件 | 只有设置了配置项 sites,才允许在代理节点登录 | high |
| P2 agent.cfg | 示例 localSite 与 controllerSite | localSite=10.0.0.81:8901:P2-agent;controllerSite=10.0.0.80:8900:controller8900 | high |
| P3 agent.cfg | 示例 localSite 与 controllerSite | localSite=10.0.0.82:8901:P3-agent;controllerSite=10.0.0.80:8900:controller8900 | high |
| 首次启动 Dolphindb(server 目录) | 权限设置命令 | chmod +x dolphindb | high |
| 访问数据节点交互编程界面 | 方式 | 可通过控制节点 Web 管理界面点击对应数据节点进入;也可在浏览器直接输入数据节点 IP 和端口号进入 | high |
| 示例建库建表脚本 | 数据库与表名 | dbName="dfs://testDB";tbName="testTB" | high |
| 示例建库建表脚本 | 分区方式 | database(dbName, VALUE, 2021.01.01..2021.12.31);createPartitionedTable(..., partitionColumns=`DateTime) | high |
| 示例脚本登录信息 | 用户名与密码 | login("admin", "123456") | high |
| 模拟数据写入示例 | 股票数量与频率 | 创建 5000 个股票的 1 分钟 K 线数据并写入分区表(脚本中 take(0..4999, 5000)) | high |
| 模拟数据写入示例 | n 值 | n = 1210000 | high |
| Web 交互编程界面(数据节点) | 创建后可查看的信息 | 可在左侧“数据库”查看已创建库表及字段信息;也可在“本地变量”查看变量名、类型、维度大小、占用内存等并预览 | high |
| 访问计算节点交互编程界面 | 方式 | 可通过控制节点 Web 管理界面点击对应计算节点进入;也可在浏览器直接输入计算节点 IP 和端口号进入 | high |
| loadTable | 加载行为说明 | 加载分区表对象时只加载元数据、未加载全量数据,因此响应时间非常快 | high |
| 查询示例 | SQL(按天统计条数) | select count(*) from pt group by date(DateTime) as Date | high |
| 计算示例 | SQL(计算 OHLC) | select first(LastPx) as Open, max(LastPx) as High, min(LastPx) as Low, last(LastPx) as Close from pt group by date(DateTime) as Date, SecurityID | high |
| 大结果集展示建议 | 做法与目的 | 当查询结果较大时赋值给变量(如 result),占用 server 端内存,客户端分页取回展示以减少客户端内存占用 | high |
| Web 集群管理(Controller Config) | 生效方式 | 在控制节点 Web 界面可添加/删除/修改 controller.cfg 中的参数;修改后需重启控制节点生效 | high |
| 控制节点地址变更 | 联动修改要求 | 若改变 controller.cfg 的 localSite,一定要修改所有 agent.cfg 中的 controllerSite,否则集群将无法正常运行 | high |
| Web 集群管理(Nodes Config) | 生效方式 | 在 Web 界面可修改 cluster.cfg 中的数据/计算节点参数;修改后需重启数据节点和计算节点生效 | high |
| 外网访问集群管理器 | controller 配置项 | 需要在 controller 上配置 publicName(可为域名或 IP;若要启动 HTTPS,必须是域名) | high |
| 示例外网 publicName(cluster.cfg) | 配置示例 | P1-%.publicName=19.56.128.21;P2-%.publicName=19.56.128.22;P3-%.publicName=19.56.128.23(% 为节点别名通配符) | high |
| 示例外网 publicName(controller.cfg) | 配置示例 | publicName=19.56.128.21 | high |
| DolphinDB 集群部署位置 | 支持环境 | 可部署在局域网内,也可部署在私有云或公有云上 | high |
| DolphinDB 默认集群心跳机制 | 默认行为 | 默认集群所有节点在一个局域网内(lanCluster=1)并通过 UDP 广播监测节点心跳 | high |
| 云平台部署 | 潜在限制 | 云平台上所有节点不一定在一个局域网内,也可能不支持 UDP | high |
| 云平台部署(非 UDP 通讯) | 配置要求 | 需在 controller.cfg 和 agent.cfg 配置 lanCluster=0 实现非 UDP 模式通讯;否则可能无法正常检测心跳导致集群无法正常工作 | high |
| 云部署相关文档 | 链接 | https://docs.dolphindb.cn/zh/tutorials/docker_single_deployment.html | high |