CentOS 7环境下DolphinScheduler 3.2.2伪集群部署实战与避坑指南

张开发
2026/4/7 12:18:28 15 分钟阅读

分享文章

CentOS 7环境下DolphinScheduler 3.2.2伪集群部署实战与避坑指南
1. 环境准备从零搭建伪集群基础在CentOS 7上部署DolphinScheduler伪集群就像组装一台精密仪器每个零件都要严丝合缝。我去年给某电商团队部署时就因为没有做好基础环境配置导致后续服务频繁崩溃。下面这些坑你千万别踩Java环境是第一个拦路虎。虽然官方说支持JDK1.8但我实测发现OpenJDK会有兼容性问题。建议用Oracle JDK1.8u202版本这个版本与DolphinScheduler 3.2.2的兼容性最稳定。安装后记得配置环境变量export JAVA_HOME/usr/java/jdk1.8.0_202-amd64 export PATH$JAVA_HOME/bin:$PATH数据库选择上MySQL 5.7确实能用但如果你打算长期使用我更推荐MySQL 8.0。性能提升明显特别是处理复杂工作流时。创建数据库时务必注意CREATE DATABASE ds CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;这个字符集配置很多人会忽略等数据出现乱码再改就麻烦了。系统依赖方面除了常见的psmisc还需要这些包yum install -y curl telnet nc net-tools vim特别是net-tools没有它你连网络端口占用都查不了。我曾经遇到ZooKeeper启动失败就是因为没装这个包根本查不出2181端口被谁占了。2. ZooKeeper安装伪集群的中枢神经ZooKeeper在伪集群里就像交通指挥中心所有服务都要通过它协调。官网推荐3.8.0版本但我建议用3.8.4这个版本修复了几个关键bug。配置文件zoo.cfg要特别注意这些参数tickTime2000 initLimit10 syncLimit5 dataDir/usr/local/server/zookeeper/data dataLogDir/usr/local/server/zookeeper/log clientPort2181 maxClientCnxns60 autopurge.snapRetainCount3 autopurge.purgeInterval24maxClientCnxns默认是60在伪集群环境下建议调到200否则高峰期可能出现连接被拒。autopurge相关配置能自动清理旧日志避免磁盘爆满。启动排错时先用前台模式启动看实时日志./bin/zkServer.sh start-foreground常见错误有端口冲突用netstat -tunlp|grep 2181排查数据目录权限问题确保zookeeper用户有读写权限内存不足编辑bin/zkEnv.sh调整JVM参数3. DolphinScheduler核心配置魔鬼在细节里解压安装包后用户权限设置是第一个坑。很多教程说用root操作方便但这会引发后续一堆权限问题。一定要按官方建议创建专用用户useradd -s /bin/bash -d /home/dolphinscheduler dolphinscheduler echo dolphinscheduler:yourpassword | chpasswd记得把安装目录权限改对chown -R dolphinscheduler:dolphinscheduler /usr/local/server/dolphinschedulerenv配置文件中这些参数最容易出错# 时区必须设对否则定时任务全乱套 export SPRING_JACKSON_TIME_ZONEAsia/Shanghai # 数据库连接要加时区参数 export SPRING_DATASOURCE_URLjdbc:mysql://localhost:3306/ds?useUnicodetruecharacterEncodingUTF-8useSSLfalseserverTimezoneAsia/Shanghai # ZooKeeper连接字符串 export REGISTRY_ZOOKEEPER_CONNECT_STRINGlocalhost:2181install_env.sh里这几个配置项要特别注意# 伪集群模式所有服务都写localhost ipslocalhost masterslocalhost workerslocalhost:default alertServerlocalhost apiServerslocalhost # 安装路径不能有空格或中文 installPath/usr/local/server/dolphinscheduler4. 数据库初始化与服务启动临门一脚的注意事项执行upgrade-schema.sh初始化数据库时常见报错有Access denied for user检查MySQL是否开启远程连接权限Unknown system variable transaction_isolationMySQL版本不兼容Table ds.t_ds_user doesnt exist数据库没创建或字符集不对启动顺序很重要建议按这个流程# 先启动Master ./bin/dolphinscheduler-daemon.sh start master-server # 再启动Worker ./bin/dolphinscheduler-daemon.sh start worker-server # 接着启动API ./bin/dolphinscheduler-daemon.sh start api-server # 最后启动Alert ./bin/dolphinscheduler-daemon.sh start alert-server查看日志的关键命令# Master日志 tail -f master-server/logs/dolphinscheduler-master.log # Worker日志 tail -f worker-server/logs/dolphinscheduler-worker.log # API接口日志 tail -f api-server/logs/dolphinscheduler-api.log遇到服务起不来先检查这几个地方ZooKeeper是否正常运行用echo stat | nc localhost 2181测试数据库连接是否正常检查spring.datasource配置端口是否冲突12345、5678等端口是否被占访问http://localhost:12345/dolphinscheduler/ui 时如果白屏可能是前端资源没加载检查nginx配置或直接刷新缓存。登录后第一件事就是改默认密码我见过太多人忘记这步导致的安全事故。

更多文章