Bootstrap

dolphinscheduler 二次开发 问题记录

文章目录


dolphinscheduler 介绍 

Apache DolphinScheduler 是一个分布式易扩展的可视化DAG工作流任务调度开源系统。适用于企业级场景,提供了一个可视化操作任务、工作流和全生命周期数据处理过程的解决方案。
Apache DolphinScheduler 旨在解决复杂的大数据任务依赖关系,并为应用程序提供数据和各种 OPS 编排中的关系。 解决数据研发ETL依赖错综复杂,无法监控任务健康状态的问题。 DolphinScheduler 以 DAG(Directed Acyclic Graph,DAG)流式方式组装任务,可以及时监控任务的执行状态,支持重试、指定节点恢复失败、暂停、恢复、终止任务等操作。


提示:以下是本篇文章正文内容,下面案例可供参考

一、dolphinscheduler  源码下载

dolphinscheduler  github 地址:https://github.com/apache/dolphinscheduler

 

选择版本 下载 我这里选得3.1.3 版本得

Apache DolphinScheduler  官网  里也可以下载     这里面还包含了操作文档 以及不部署命令等

二、dolphinscheduler   启动

下载得  dolphinscheduler 项目, 首先需要拉去 poml 得  maven 依赖,大部分得可能回拉去失败,一般跟网络有很大关系,拉去完后项目得 poml  存在爆红 ,这里先不做处理 主要是先把项目启动起来

1. 首先需要安装好  dolphinscheduler  得运行环境  包含  zookeeper (windows  下下载下来启动就行)

2.数据库依托 mysql  数据库 这个数据库需要自己搭建好 在mysql的dolphinscheduler库中执行dolphinscheduler源码目录下的dolphinscheduler/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql的文件,以此完成数据的初始化。我这里是在navicat中运行相关sql

3. 前端需要用到 node   需要提前安装 好 一般按官方得来就行 有问题在修改版本

        需要安装 pnpm   命令     iwr https://get.pnpm.io/install.ps1 -useb | iex
 

4. 修改ds数据源配置文件


1)如果使用 MySQL 作为元数据库,需要先修改 dolphinscheduler/pom.xml,将 mysql-connector-java 依赖的 scope 改为 compile

2)修改 Master 数据库配置,修改 dolphinscheduler-master/src/main/resources/application.yaml 文件中的数据库配置

3)修改 Worker 数据库配置,修改 dolphinscheduler-worker/src/main/resources/application.yaml 文件中的数据库配置

4)修改 Api 数据库配置,修改 dolphinscheduler-api/src/main/resources/application.yaml 文件中的数据库配置

在这里插入图片描述


5. 修改zk配置


修改application.yml中zk的连接地址,如果这里采用windows本地安装zk的方式则不用修改,否则需要修改为对应的zk地址。

在这里插入图片描述

 


6.修改日志级别


修改日志级别:为以下配置增加一行内容 使日志能在命令行中显示
dolphinscheduler-master/src/main/resources/logback-spring.xml
dolphinscheduler-worker/src/main/resources/logback-spring.xml dolphinscheduler-api/src/main/resources/logback-spring.xml
添加内容如下:

<appender-ref ref="STDOUT"/>
1
修改后内容如下:在这里插入图片描述

 


7.启动服务


需要启动三个服务,包括 MasterServer,WorkerServer,ApiApplicationServer

4.1 MasterServer
执行 org.apache.dolphinscheduler.server.master.MasterServer 中的 main 方法,并配置VM Options

-Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
在这里插入图片描述
注:VM Options -Dspring.profiles.active=mysql 中 mysql 表示指定的配置文件

启动时报如下错误:

Error running 'MasterServer': Command line is too long. Shorten command line for MasterServer or also for Spring Boot default configuration

解决办法:在项目的.idea/workspace.xml文件中,找到,后面在添加一行

<property name="dynamic.classpath" value="true" />

在这里插入图片描述

在这里插入图片描述

启动成功

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
在这里插入图片描述

 启动成功

在这里插入图片描述
4.4 验证
启动完成可以浏览 Open API 文档,地址为 http://localhost:12345/dolphinscheduler/swagger-ui/index.html

在这里插入图片描述

启动前端

安装前端依赖并运行前端组件

cd dolphinscheduler-ui
pnpm install
pnpm run dev

三、dolphinscheduler   打包  

poml  飘红 不可怕 只要能正常执行  打包命令  或者拉去文件  就行

1.确保 前端能正常打包 如果打包不成功 不然后续整体打包失败,如果不想打包前端  需要在ui里注释掉

这个在打包得时候需要打开

打包命令在官网这里   建议把环境搭建看完   代码风格 如果没有做二次开发呢  可以执行

 

四、dolphinscheduler   二次开发 需要注意得点

二次开发  可能风格会不一样  打包会导致这个代码检查得时候会把你写得实体类啊  还有方法等  引入得给搞失效  所以我在开发过程中 把代码风格检查给注释掉了(有其他得可以讨论交流下  我遇到得是这个问题)

总结

简单易用

  • 可视化 DAG: 用户友好的,通过拖拽定义工作流的,运行时控制工具

  • 模块化操作: 模块化有助于轻松定制和维护。

丰富的使用场景

  • 支持多种任务类型: 支持Shell、MR、Spark、SQL等10余种任务类型,支持跨语言,易于扩展

  • 丰富的工作流操作: 工作流程可以定时、暂停、恢复和停止,便于维护和控制全局和本地参数。

High Reliability

  • 高可靠性: 去中心化设计,确保稳定性。 原生 HA 任务队列支持,提供过载容错能力。 DolphinScheduler 能提供高度稳健的环境。

High Scalability

  • 高扩展性: 支持多租户和在线资源管理。支持每天10万个数据任务的稳定运行。

;