ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DolphinScheduler本地启动指南:从环境配置到服务部署

DolphinScheduler本地启动指南:从环境配置到服务部署 1. 为什么需要本地启动DolphinScheduler对于刚接触Apache DolphinScheduler的新手来说直接在本地环境启动服务是最快速的上手方式。相比在生产环境部署本地启动有三大不可替代的优势零成本学习不需要准备服务器资源用日常开发电脑就能跑起来即时反馈修改配置或代码后可以立即看到效果安全实验所有操作都在本地完成不会影响线上环境我在第一次接触DolphinScheduler时就发现官方文档虽然全面但对新手来说信息量太大。经过多次实践我总结出这套最适合小白的启动方案帮你避开我当初踩过的所有坑。2. 环境准备这些细节决定成败2.1 硬件与基础软件要求虽然DolphinScheduler对资源要求不高但建议满足以下配置内存≥8GB实测6GB也能跑但会卡顿磁盘≥10GB可用空间操作系统Windows 10/macOS 10.15/Linux推荐Ubuntu 20.04特别注意Windows用户需要确保用户名不含中文或特殊字符否则可能遇到路径问题2.2 Java环境配置DolphinScheduler 3.x版本需要JDK 1.8必须Oracle JDK实测OpenJDK会有兼容性问题Maven 3.6配置完成后在终端执行java -version mvn -v应该能看到类似输出java version 1.8.0_301 Java(TM) SE Runtime Environment (build 1.8.0_301-b09)2.3 数据库选择与初始化虽然H2内存数据库可以快速启动但建议使用MySQL 5.7作为生产级替代。安装MySQL后执行CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8mb4; CREATE USER ds_user% IDENTIFIED BY ds_password; GRANT ALL PRIVILEGES ON dolphinscheduler.* TO ds_user%; FLUSH PRIVILEGES;3. 源码获取与编译技巧3.1 从GitHub克隆项目推荐使用Git Bash执行git clone https://github.com/apache/dolphinscheduler.git cd dolphinscheduler git checkout 3.1.8 # 选择稳定版本3.2 Maven编译的隐藏参数常规编译命令mvn clean install -DskipTests但首次编译时建议添加mvn clean install -DskipTests -Prelease -Dmaven.test.skiptrue这个组合能显著加快编译速度特别是网络环境不好时。3.3 常见编译问题解决问题1Could not transfer artifact...解决删除本地Maven仓库中对应目录后重试问题2OutOfMemoryError解决设置MAVEN_OPTS环境变量export MAVEN_OPTS-Xmx2g -XX:MaxPermSize512m4. 配置文件精讲4.1 核心配置文件定位主要修改以下文件./dolphinscheduler-server/src/main/resources/application.yaml ./dolphinscheduler-ui/.env4.2 数据库连接配置示例spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/dolphinscheduler?useUnicodetruecharacterEncodingUTF-8 username: ds_user password: ds_password4.3 时区与端口设置容易忽略的关键配置server: port: 12345 # 避免与常用端口冲突 servlet: context-path: /dolphinscheduler spring: jackson: time-zone: GMT8 # 必须与数据库时区一致5. 服务启动全流程5.1 后端服务启动在项目根目录执行# 启动API服务 ./bin/dolphinscheduler-daemon.sh start api-server # 启动Master服务 ./bin/dolphinscheduler-daemon.sh start master-server # 启动Worker服务 ./bin/dolphinscheduler-daemon.sh start worker-server5.2 前端服务启动进入ui目录cd dolphinscheduler-ui npm install npm run dev5.3 验证服务状态打开浏览器访问http://localhost:8888默认账号密码admin/dolphinscheduler1236. 排错指南我踩过的那些坑6.1 端口冲突问题现象服务启动后立即退出排查netstat -ano | findstr 12345 # Windows lsof -i:12345 # Mac/Linux解决修改application.yaml中的server.port6.2 数据库连接失败典型报错Communications link failure检查清单MySQL服务是否启动用户名密码是否正确是否授予了远程连接权限防火墙是否放行3306端口6.3 前端跨域问题现象API请求返回403解决在application.yaml添加cors: allowed-origins: * allowed-methods: * allowed-headers: *7. 性能优化建议7.1 JVM参数调整在bin/env/dolphinscheduler_env.sh中添加export JAVA_OPTS-server -Xmx4g -Xms4g -Xss512k -XX:DisableExplicitGC7.2 日志配置优化修改logback-spring.xmllogger nameorg.apache.dolphinscheduler levelINFO/ logger nameorg.springframework levelWARN/7.3 开发模式热部署前端修改后无需重启npm run dev --watch后端开启JRebel热部署能节省90%的重启时间8. 进阶调试技巧8.1 IDEA远程调试配置在启动脚本添加export JAVA_OPTS-agentlib:jdwptransportdt_socket,servery,suspendn,address5005IDEA创建Remote JVM Debug配置端口设置为50058.2 数据库变更追踪安装Liquibase插件后可以可视化查看数据库变更历史SELECT * FROM DATABASECHANGELOG ORDER BY DATEEXECUTED DESC;8.3 接口文档查看启动后访问http://localhost:12345/dolphinscheduler/doc.html9. 本地开发最佳实践代码规范检查在提交前运行mvn checkstyle:check单元测试覆盖虽然跳过了测试但关键模块应该补充单元测试分支管理策略建议采用Git Flow工作流Docker辅助开发使用docker-compose快速搭建依赖服务我在实际开发中发现将常用命令写成脚本能极大提升效率。比如创建dev-start.sh#!/bin/bash # 启动后端 ./bin/dolphinscheduler-daemon.sh start all # 启动前端 cd dolphinscheduler-ui npm run dev10. 从本地到生产的思维转变当本地环境运行稳定后需要考虑配置分离将数据库密码等敏感信息移出代码库监控接入添加Prometheus监控指标日志收集配置ELK日志系统高可用部署研究Kubernetes部署方案记住一个原则本地环境配置永远不要直接复制到生产环境。我建议维护三套配置文件application-dev.yaml本地开发application-test.yaml测试环境application-prod.yaml生产环境
返回列表