CentOS Dolphin集群部署方法
小樊
38
2025-12-11 19:45:47
适用说明与架构概览
- 本文面向 DolphinDB(分布式时序/列式数据库)在 CentOS 7.x 上的集群部署,涵盖 controller(控制节点)、agent(代理节点)、datanode(数据节点) 的部署与初始化。
- 典型拓扑示例:
- dolphindb1(172.16.1.11):controller + agent + datanode
- dolphindb2(172.16.1.12):agent + datanode
- 节点职责简述:
- controller:管理集群元数据与协调,不作为常规任务入口
- agent:负责本机数据节点的启停与管控
- datanode:承载数据存储与查询计算入口
环境准备与系统配置
- 基础依赖与平台
- 推荐 CentOS 7.x,内核 ≥ 2.6.19,安装 gcc ≥ 4.8.5
- 建议为元数据/日志与数据分盘,优先 SSD;多盘可提升吞吐
- 文件系统与 inode
- 推荐 XFS(支持动态调整 inode);若使用 ext4 等不支持硬链接的文件系统,更新/写入性能可能受影响
- 检查与调优 inode(XFS):
- 查看:xfs_info /mount/point | grep imaxpct;df -i
- 调整:xfs_growfs -m 30 /mount/point(示例将 inode 占比调至 30%)
- 主机名与解析
- 配置 /etc/hosts,确保各节点可通过主机名互通
- 防火墙与 SELinux(测试/内网环境常用做法)
- 关闭防火墙:systemctl disable --now firewalld
- 临时禁用 SELinux:setenforce 0;永久:/etc/selinux/config 中设为 SELINUX=disabled
- 时间同步
- 安装并启用 chrony,使用国内 NTP 源(如 ntp.aliyun.com),保证节点间时间一致性
安装与配置步骤
- 安装介质与目录
- 下载 DolphinDB Linux 64 位发行包,解压至安装目录(示例:/datas/app/dolphindb)
- 每台机器创建目录:mkdir -p config data log
- 许可证
- 将有效许可证文件 dolphindb.lic 放置于 server 目录,替换默认文件
- 配置 controller(示例:172.16.1.11)
- config/controller.cfg
- mode=controller
- localSite=172.16.1.11:8990:master
- dfsReplicationFactor=2
- dfsMetaDir=/datas/app/dolphindb/server/dfsMeta
- dataSync=1
- lanCluster=0
- 配置 cluster.nodes(集群成员清单)
- config/cluster.nodes
- 172.16.1.11:8960:dolphindb1-agent,agent
- 172.16.1.11:8961:dolphindb1-NODE1,datanode
- 172.16.1.12:8960:dolphindb2-agent,agent
- 172.16.1.12:8961:dolphindb2-NODE1,datanode
- 配置 cluster.cfg(共享参数与节点级目录)
- maxConnections=512;workerNum=4;localExecutors=3;webWorkerNum=2
- 节点级目录与存储(示例为双盘):
- dolphindb1-NODE1.chunkMetaDir=/datas/app/dolphindb/server/chunkMeta
- dolphindb2-NODE1.chunkMetaDir=/datas/app/dolphindb/server/chunkMeta
- dolphindb1-NODE1.volumes=/datas/dolphindbData/dolphindb1-NODE1,/data/dolphindbData/dolphindb1-NODE1
- dolphindb2-NODE1.volumes=/datas/dolphindbData/dolphindb2-NODE1,/data/dolphindbData/dolphindb2-NODE1
- dolphindb1-NODE1.persistenceDir=/datas/app/dolphindb/server/persistence
- dolphindb2-NODE1.persistenceDir=/datas/app/dolphindb/server/persistence
- dolphindb1-NODE1.subPort=8962;dolphindb2-NODE1.subPort=8962
- lanCluster=0;preloadModules=plugins::parquet
- 配置 agent(两台机器)
- config/agent.cfg
- mode=agent
- localSite=本机IP:8960:本机-agent
- controllerSite=172.16.1.11:8990:master
- workerNum=3;localExecutors=2;maxMemSize=4
- lanCluster=0
- 启动顺序
- 各节点先启动 agent,再在 controller 所在节点启动 controller
- 启动脚本示例(后台运行):
- agent:nohup ./dolphindb -console 0 -mode agent -home data -script dolphindb.dos -config config/agent.cfg -logFile log/agent.log &
- controller:nohup ./dolphindb -console 0 -mode controller -home data -script dolphindb.dos -config config/controller.cfg -logFile log/controller.log -nodesFile config/cluster.nodes -clusterConfig config/cluster.cfg &
- 初始化数据节点
- 浏览器访问 http://172.16.1.11:8990,使用默认账户 admin/123456 登录
- 在 Web 管理界面勾选并启动所有 datanode
验证与常见问题
- 连通性与进程
- 检查进程:ps -ef | grep dolphindb
- 端口连通:telnet 目标IP 端口(如 8990/8961/8962),或 ss -lntp | grep dolphindb
- 日志与告警
- 查看 controller.log、agent.log、datanode.log 是否有异常堆栈或磁盘满告警
- 常见原因
- 防火墙/SELinux 未放行导致节点无法注册或连接失败
- 主机名解析不一致,导致节点间通信异常
- 许可证节点数不足(社区版限制),需使用企业版 license 扩容
- 磁盘空间或 inode 耗尽,导致写入失败(XFS 可调大 imaxpct)
Docker 快速部署方案(可选)
- 适用场景:快速演示、CI/测试环境
- 步骤要点
- 准备 Docker 环境,下载 DolphinDB Docker-Compose 部署包
- 替换 dolphindb.lic(社区版通常不支持 5 数据节点 + 1 控制节点,需企业版)
- 构建镜像并启动:docker-compose up -d
- 访问 http://localhost:8888 打开 Web 管理界面,启动数据节点
- 注意
- Docker 虚拟网络下 UDP 可能异常,需在 agent.cfg 与 cluster.cfg 中设置 lanCluster=0
- 默认示例包含多个容器与固定虚拟 IP,便于快速验证多节点拓扑
名称辨析
- 本文档面向 DolphinDB 集群部署。若你实际需要部署的是 Apache DolphinScheduler(工作流调度系统),其组件为 Master/Worker/Api/Alert,依赖 JDK 1.8+、Zookeeper、MySQL/PostgreSQL,部署步骤与本文完全不同