DolphinScheduler 是一款优秀的开源分布式调度系统,用于大数据工作流的管理和编排。为了满足特定的业务需求,很多开发者希望能够进行二次开发。然而,要在本地启动并调试DolphinScheduler,前后端环境的配置以及正确的启动步骤至关重要。本文将详细介绍如何在本地环境下启动DolphinScheduler 3.1.1项目进行二次开发,包括前端和后端部分的设置和启动。
在开始之前,你需要确保系统中已经安装了以下工具:
请从Node.js官方网站下载并安装最新的LTS版本,这将同时安装npm。
npm install -g @vue/cli
首先,从官方Git仓库克隆DolphinScheduler代码。
git clone https://github.com/apache/dolphinscheduler.gitcd dolphinschedulergit checkout release-3.1.1
cd dolphinscheduler-uinpm install
根据项目需求,你可能需要配置一些环境变量。通常情况下,你需要创建并编辑.env.development文件。
cp .env.example .env.development# 修改 .env.development 中的配置参数
确保配置文件中关于API地址的部分指向你的后端服务器地址。
使用以下命令启动本地开发服务器:
npm run serve
启动成功后,终端中会显示访问项目的本地地址(默认情况下为http://localhost:8080)。此时,你可以在浏览器中打开该地址查看前端界面的效果,并进行开发和调试。
在启动后端项目之前,确保你的系统中已经安装了以下工具:
请从Oracle官网下载并安装JDK 1.8。如果使用其他版本,可能会遇到兼容性问题。
请从Maven官网下载并安装Maven,并确保其在系统路径中可用。
DolphinScheduler使用MySQL作为其默认数据库。请从MySQL官网下载安装MySQL,并创建一个新的数据库供DolphinScheduler使用。
如果你已经完成前端项目的准备工作,可以直接使用同一个代码仓库。如果没有,按照以下步骤获取代码:
git clone https://github.com/apache/dolphinscheduler.gitcd dolphinschedulergit checkout release-3.1.1
按照以下步骤创建并配置数据库:
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
在dolphinscheduler目录中的script文件夹下,找到并执行
create_dolphinscheduler.sh脚本:
cd scriptsh create_dolphinscheduler.sh
根据脚本提示输入相应的数据库配置信息,如数据库地址、用户名和密码等。
切换到项目的根目录并使用Maven进行编译和打包:
cd dolphinschedulermvn clean install -Prelease
编译成功后,将会生成目标包,你可以在targ目录下找到它。
使用以下命令启动DolphinScheduler服务:
sh bin/start-all.sh
该脚本会启动DolphinScheduler的所有组件,包括 API服务器、Master 和 Worker 节点以及 Logger服务器。如果需要对某个具体组件进行单独的调试,可以分别启动对应的脚本。
通过上述步骤,前后端项目已经在本地环境中成功运行。前端项目默认启用了热更新功能,前端代码的任何更改都可以实时反映在浏览器中。不过,对于后端服务的更改,通常需要重新编译和启动才能生效。
DolphinScheduler产生的日志对于调试和问题排查非常关键。你可以在logs目录下找到各组件的日志文件。合理查看日志能够帮助你更快地定位问题所在。
无论是前端还是后端开发,都建议使用现代化的IDE(如 IntelliJ IDEA 或 Visual Studio Code)进行代码编辑和调试。IDE自带的调试工具和插件可以大大提高开发效率。
推荐使用如 Navicat 或 DBeaver 等数据库管理工具来管理和查看你的MySQL数据库。这些工具可以帮助你更方便地执行SQL语句、查看数据和排查问题。
在本地启动并调试DolphinScheduler 3.1.1项目,前端和后端环境的配置都是成功进行二次开发的基础。通过本文的详细步骤,你可以顺利地在本地环境中搭建起一个完整的开发环境。掌握这些技能,你将能够更好地解决实际开发中的问题,并灵活地扩展DolphinScheduler的功能,以满足特定的业务需求。