单服务器集群部署

本页介绍 DolphinDB 单服务器集群部署相关内容,包括文章信息、集群节点类型说明,以及教程章节概览与入口。

Source: https://dolphindb.cn/blogs/4

What this page covers

技能认证特训营第二期报名提示

页面顶部包含活动提示与限时报名链接信息。

单服务器集群部署(文章信息与教程概览)

本节给出文章标题、作者与日期信息,并介绍 DolphinDB 集群节点类型与教程章节目录。

下载

本节说明从官网下载安装包并解压到指定目录,同时提示安装路径的字符限制。

软件授权许可更新

本节说明企业版试用授权许可的更新方式、物理节点的许可文件更新要求,以及社区版与企业版的资源支持差异与限制。

DolphinDB 集群初始配置

本节描述集群启动前的必要配置,并给出 controller.cfg、cluster.nodes、cluster.cfg 与 agent.cfg 等配置要点与示例。

DolphinDB 集群启动与关闭(命令行与 Web 管理器)

本节给出 Linux/Windows 下启动与关闭 agent、controller 的方式,并说明如何通过浏览器访问集群管理器、登录与启动数据节点,以及常见启动问题的定位线索。

节点启动失败可能原因分析

本节列举节点长时间无法启动的原因与排查线索,包括端口、防火墙、配置书写、节点文件内容与宏变量使用等。

基于 Web 的集群管理

本节说明 Web 集群管理界面可用于修改控制节点参数、增删数据节点、修改数据节点参数,并给出变更生效的重启条件与相关注意事项。

DolphinDB server 版本的更新

本节给出集群模式升级 server 的步骤,包括关闭节点、备份元数据、下载解压新版本、覆盖文件注意事项与升级验证。

DolphinDB 集群详细配置与参数意义(帮助文档链接)

本节提供集群配置帮助文档的中文与英文链接入口。

Facts Index

Entity Attribute Value Confidence
技能认证特训营第二期status正式开启(提供限时报名链接并称可享专属福利优惠)medium
单服务器集群部署publish_date2021-05-14high
单服务器集群部署authorliang.linhigh
DolphinDB 集群node_types包含三种类型节点:数据节点(data node)、代理节点(agent)和控制节点(controller)high
数据节点(data node)purpose用于数据存储、查询以及计算high
代理节点(agent)purpose用于关闭或开启数据节点high
控制节点(controller)purpose用于集群管理high
本教程coverage讲述单服务器集群部署步骤,并分析节点启动失败的可能原因high
DolphinDB 安装路径目录名restriction不能含有空格字符,也不能含有中文字符,否则启动数据节点时会失败high
企业版试用授权许可update_method替换授权许可文件;每个物理节点的授权许可文件都需要更新high
企业版 vs 社区版capabilities企业版支持更多的节点、CPU 内核和内存medium
社区版 licensemax_nodes_supported最多支持 2 个节点high
本教程示例集群node_count_requirement使用 4 节点,因此必须使用支持 4 个以上数据节点的企业版 licensehigh
license 文件路径path/DolphinDB/server/dolphindb.lichigh
集群启动前配置must_configure必须配置控制节点和代理节点;数据节点可在集群启动后通过网络界面配置或在初始阶段配置high
集群配置与授权文件constraint配置时需核对授权文件规定的节点个数及每个节点最多内核;超出授权将导致集群无法正常启动,异常信息记录在 log 文件high
server 目录下子目录directories在 Linux 示例中创建 config、data、log 子目录;这些子目录用于方便理解但不是必须high
controller.cfgrequired_parameter只有 localSite 参数是必需的,其它参数都是可选参数high
controller.cfgexample_parameterslocalSite=192.168.1.103:8920:ctl8920 localExecutors=3 maxConnections=512 maxMemSize=16 webWorkerNum=4 workerNum=4 dfsReplicationFactor=1 dfsReplicaReliabilityLevel=0 dataSync=1high
localSite 参数format_and_requirement格式为 IP地址:端口号:节点别名;IP 地址为内网 IP;所有字段均为必选项high
localExecutors 参数default_rule默认值是 CPU 的内核数量 - 1high
webWorkerNum 参数default_value默认值是 1high
workerNum 参数(controller)default_rule默认值是 CPU 的内核数量high
dfsReplicationFactor 参数default_value默认值是 2high
dfsReplicaReliabilityLevel 参数meaning_and_defaults0:多个副本可以保存在同一台物理服务器上;1:不可以;默认值是 0high
dataSync 参数dependency开启后数据库日志在事务提交前强制持久化到磁盘,cluster.cfg 中 chunkCacheEngineMemSize 也需要配置high
cluster.nodes 文件purpose用于存放集群代理节点和数据节点信息;配置分两列:第一列为 IP:端口:别名(冒号分隔),第二列说明节点类型(agent 或 datanode);节点别名大小写敏感且在集群内必须唯一high
本教程示例数据节点数量count4 个数据节点(可更改节点个数)high
cluster.nodes 示例内容entries包含 agent 与 DFS_NODE1~DFS_NODE4:192.168.1.103:8910:agent,agent 以及 192.168.1.103:8921~8924:DFS_NODE1~DFS_NODE4,datanode(含表头 localSite,mode)high
cluster.cfgscope适用于集群中所有数据节点high
cluster.cfg 示例参数example_parametersmaxConnections=512 maxMemSize=32 workerNum=8 localExecutors=7 webWorkerNum=2 newValuePartitionPolicy=add chunkCacheEngineMemSize=1high
agent.cfgrequired_parameters只有 LocalSite 和 controllerSite 是必需参数;其它参数均为可选参数high
agent.cfg 示例参数example_parametersworkerNum=3 localExecutors=2 maxMemSize=4 localSite=192.168.1.103:8910:agent controllerSite=192.168.1.103:8920:ctl8920high
controller.cfg 与 agent.cfgconsistency_requirementcontroller.cfg 的 localSite 应与所有 agent.cfg 的 controllerSite 一致;若 controller.cfg 的 localSite 变化(即使只是 node alias 改变),所有 agent.cfg 的 controllerSite 都应相应改变high
Linux 后台启动 agent 命令commandnohup ./dolphindb -console 0 -mode agent -home data -config config/agent.cfg -logFile log/agent.log &high
agent.loglocation存放在 log 子目录下(可用于诊断 agent 启动问题)high
后台运行参数 -consoledefault_and_requirement“-console”默认是 1;设置为后台运行必须设置为 0(-console 0),否则系统运行一段时间后会自动退出high
启动参数说明parameter_meanings-mode 表示节点性质;-home 指定数据以及元数据存储路径;-config 指定配置文件路径;-logFile 指定 log 文件路径high
Linux 前端交互启动 agent 命令command./dolphindb -mode agent -home data -config config/agent.cfg -logFile log/agent.loghigh
Windows 启动 agent 命令commanddolphindb.exe -mode agent -home data -config config/agent.cfg -logFile log/agent.loghigh
Linux 后台启动 controller 命令commandnohup ./dolphindb -console 0 -mode controller -home data -config config/controller.cfg -clusterConfig config/cluster.cfg -logFile log/controller.log -nodesFile config/cluster.nodes &high
controller.loglocation存放在 log 子目录下(用于诊断 controller 启动问题的提示文本中提及可查看该 log 文件)medium
Linux 前端交互启动 controller 命令command./dolphindb -mode controller -home data -config config/controller.cfg -clusterConfig config/cluster.cfg -logFile log/controller.log -nodesFile config/cluster.nodeshigh
Windows 启动 controller 命令commanddolphindb.exe -mode controller -home data -config config/controller.cfg -clusterConfig config/cluster.cfg -logFile log/controller.log -nodesFile config/cluster.nodeshigh
关闭节点(前端交互模式)method在控制台输入 "quit" 退出high
关闭节点(后台交互模式)method使用 Linux kill 命令;示例通过 ps/grep/awk/xargs kill -TERM(示例用户名 ec2-user)high
集群管理器访问方式url_or_address启动控制节点和代理节点后,在浏览器地址栏输入 192.168.1.103:8920(8920 为控制节点端口号)high
集群管理器浏览器支持supported_browsers目前支持 Chrome 与 Firefoxhigh
DolphinDB databaseaccess_control提供良好的权限控制机制;只有系统管理员才有权限做集群部署medium
默认系统管理员账号credentials帐号名:admin;默认密码:123456high
admin 账号post_login_actions登录后可修改 "admin" 密码,也可添加用户或其他管理员账户medium
启动数据节点耗时time_estimate可能耗时 30 秒到 1 分钟medium
集群成功启动判定indicator若 State 栏全部为绿色对勾,则整个集群成功启动high
节点日志文件位置(示例)logfile_path_rule若节点名为 DFS_NODE1,对应 logFile 应在 log/DFS_NODE1.loghigh
节点启动错误error_message_examplelog 可能出现 "Failed to bind the socket on XXXX"(XXXX 为待启动节点端口号)high
端口占用导致启动失败cause_and_mitigation可能因端口被其他程序占用;关闭其他程序后重新启动节点即可high
Linux 端口未释放导致启动失败cause_and_mitigation可能因刚关闭使用该端口的数据节点且 Linux kernel 尚未释放端口;等待约 30 秒后再启动节点high
startDataNode 函数purpose可在控制节点执行代码启动数据节点(示例启动 DFS_NODE1~DFS_NODE4)high
节点启动失败原因cause端口号被占用;可在 log 看到 "Failed to bind the socket on XXXX"high
节点启动失败原因cause防火墙未开放端口(需在防火墙中开放使用到的端口)high
节点启动失败原因cause配置文件中的 IP 地址、端口号或节点别名书写不正确high
云端或 k8s 环境集群部署config_requirement需要在 agent.cfg 和 cluster.cfg 中加上配置项 lanCluster=0high
cluster.nodes 文件cause_of_failure第一行为空行可能导致失败;log 可能出现 "Failed to load the nodes file [XXXX/cluster.nodes] with error: The input file is empty.";删除空行后重启节点high
cluster.cfg 宏变量 <ALIAS>cause_of_failure在明确节点的情况下使用 <ALIAS>(示例路径含 <ALIAS>)会导致节点无法正常启动;需删除 <ALIAS> 并替换为特定节点;若对所有节点使用则改为 persistenceDir = .../<ALIAS>high
Web 集群管理界面capability提供更改集群配置的所有功能(用于实际使用中改变集群配置)medium
控制节点参数修改生效条件effective_after在“Controller Config”界面更改后需重启控制节点才能生效high
更改控制节点 localSite 的影响dependency若改变控制节点的 localSite,一定要在所有 agent.cfg 中相应修改 controllerSite,否则集群无法正常运行high
Nodes Setup(Web)capability可添加或删除数据节点;操作结果会同步至 cluster.nodes;新的配置在整个集群重启后生效high
集群重启步骤(增删节点后)procedure(1)关闭所有数据节点,(2)关闭控制节点,(3)启动控制节点,(4)启动数据节点high
删除节点操作risk如果节点上已经存放数据,删除节点可能会造成数据丢失high
新增物理机器上的数据节点dependency需在新物理机器按 3.2 配置并启动新的代理节点,在 cluster.nodes 增添新的代理节点和数据节点信息,并重新启动控制节点high
Nodes Config(Web)capability可对数据节点设置运行参数;支持修改 cluster.cfg 中已有参数并允许添加自定义配置;重启所有数据节点后生效high
DolphinDB server 版本更新step正常关闭所有节点(集群模式包括数据节点、控制节点和代理节点)high
元数据备份(集群模式默认路径示例)paths_example以单机两数据节点(datanode1/datanode2)为例:/DolphinDBserver/data/DFSMetaLog.0/ 以及 /DolphinDBserver/data/datanode1/storage/CHUNK_METADATA/ 和 /DolphinDBserver/data/datanode2/storage/CHUNK_METADATA/medium
元数据文件位置查找how_to_confirm若默认路径未找到,可通过配置文件参数 dfsMetaDir 与 chunkMetaDir 确认;若未指定但配置了 volumes,CHUNK_METADATA 目录在 volumes 指定目录下high
下载更新版本安装包(示例)command_examplewget https://www.dolphindb.cn/downloads/DolphinDB_Linux64_V1.30.6.zip(示例为 1.30.6 版本;不同版本文件名不同)high
解压更新包(示例)command_exampleunzip DolphinDB_Linux64_V1.30.6.zip -d v1.30.6high
升级覆盖文件范围copy_rule拷贝新版本 server 子目录下除 config、data、log 目录和 dolphindb.cfg 外的所有文件和子目录到旧版本安装目录 server 下覆盖同名文件high
升级注意事项do_not_override若旧版本 dolphindb.dos 初始化脚本中添加了脚本不要覆盖;旧版本 dolphindb.lic 若为企业版 license 也不要覆盖high
升级验证verification_method重新启动所有节点后,GUI 连接任意数据节点执行 version() 查看版本信息以检查升级是否成功high
DolphinDB 集群配置帮助文档(中文)linkhttp://www.dolphindb.cn/cn/help/Setup.htmlhigh
DolphinDB 集群配置帮助文档(英文)linkhttps://www.dolphindb.com/help/ClusterSetup.htmlhigh
单实例参数配置(用户手册链接)linkhttps://www.dolphindb.cn/cn/help/StandaloneSetup.htmlhigh
教程章节目录(Gitee 链接)links包含“1 下载、2 软件授权许可更新、3 DolphinDB集群初始配置、4 节点启动失败可能原因分析、5 基于Web的集群管理、6 DolphinDB server版本的更新、7 DolphinDB集群详细配置以及参数意义”的对应链接(位于 gitee.com/dolphindb/Tutorials_CN/...single_machine_cluster_deploy.md)high