转载请注明出处~ http://t.csdn.cn/N8KEI
Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。官方文档固然好,下面整理一个从零开始编译源码学习、开发、后期维护的手册,以及源码分析,方便大家学习和使用。
文章目录
1.开发篇
源码下载
代码编译
支持的系统:
MacOS
Linux
命令如下:
mvn clean install -Prelease -Dmaven.test.skip=true
代码风格
DolphinScheduler使用Spotless检查并修复代码风格和格式问题。 您可以执行如下的命令,Spotless将会为您自动检查并修复代码风格和格式问题。
./mvnw spotless:apply
您可将/style/pre-commit目录下的pre-commit hook文件拷贝到您的.git/hooks/ 目录下,这样您每次使用git commit命令时,Spotless将会自动为您修复代码风格和格式问题。
依赖组件
组件安装
zookeeper:
- 在 ZooKeeper 的目录下新建 zkData、zkLog文件夹
- 将 conf 目录下的 zoo_sample.cfg 文件,复制一份,重命名为 zoo.cfg,
修改其中数据和日志的配置,如:
dataDir=/Users/liushengjie/program/zookeeper/zkData ## 此处使用绝对路径
dataLogDir=/Users/liushengjie/program/zookeeper/zkLog
- 运行 ./bin/zkServer.sh
JDK
maven
node
pnpm
数据库
1.数据库安装
点击MySQL,选择5.7.30版本(mac支持最高版本),其他类型也可更高,安装。
2.数据库密码修改
mysql -uroot -p; -- 在输入密码
set password for 用户名@localhost = password(‘新密码’);
set password for root@localhost = password(‘root’);
flush privileges;
3.初始化数据库
mysql -uroot -p; -- 在输入密码
create database dolphinscheduler;
-- 根据工程内sql文件初始化库表+数据
source /Users/liushengjie/Documents/workspace/dolphinscheduler-3.1.5/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql
4.客户端链接(非必选,任选)
点击dbeaver,下载客户端,配置链接。
点击navicate,下载客户端,配置链接。
开发环境代码构建
1.修改pom文件
在启动代码前,我们需要配置好MySQL数据库连接。
- 如果使用 MySQL 作为元数据库,需要先修改 dolphinscheduler-pom/pom.xml,将 mysql-connector-java 依赖的 scope 改为 compile,使用 PostgreSQL 则不需要
2.修改yaml文件
- 修改 dolphinscheduler-Master 数据库配置,修改 dolphinscheduler-master/src/main/resources/application.yaml 文件中的数据库配置
- 修改 dolphinscheduler-Worker 数据库配置,修改 dolphinscheduler-worker/src/main/resources/application.yaml 文件中的数据库配置
- 修改 dolphinscheduler-Api 数据库配置,修改 dolphinscheduler-api/src/main/resources/application.yaml 文件中的数据库配置
如何可以,尽量不要使用root用户,开发为了方便,暂时使用。
datasource:
config:
activate:
on-profile: mysql
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
username: root
password: 1111
3.修改日志文件logback-spring.xml
修改日志级别:为以下配置增加一行内容 使日志能在命令行中显示
dolphinscheduler-master/src/main/resources/logback-spring.xml
dolphinscheduler-worker/src/main/resources/logback-spring.xml
dolphinscheduler-api/src/main/resources/logback-spring.xml
修改后的结果如下:
<root level="INFO">
<appender-ref ref="STDOUT"/> ##新增
<appender-ref ref="APILOGFILE"/>
<appender-ref ref="SKYWALKING-LOG"/>
</root>
2.启动后端
-
MasterServer:
启动类: org.apache.dolphinscheduler.server.master.MasterServer#main
VM Options: -Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql -
WorkerServer:
启动类: org.apache.dolphinscheduler.server.worker.WorkerServer#main
VM Options: -Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql -
ApiApplicationServer:
启动类: org.apache.dolphinscheduler.api.ApiApplicationServer#main
VM Options: -Dlogging.config=classpath:logback-spring.xml -Dspring.profiles.active=api,mysql。
启动完成可以浏览 Open API 文档 - SWAGGER
VM Options -Dspring.profiles.active=mysql 中 mysql 表示指定的配置文件
源码解析
未完待续