dolphinscheduler 二次开发 问题记录

本文详细介绍了ApacheDolphinscheduler的源码下载、启动过程,包括环境配置如Zookeeper、MySQL,以及前端依赖的安装。文章还提到了项目的打包步骤和二次开发时需要注意的代码风格问题。最后,强调了Dolphinscheduler的高可靠性、可扩展性和丰富的任务类型支持。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录


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万个数据任务的稳定运行。

DolphinScheduler是一款开源的分布式任务调度系统,可以实现自动化地调度和执行各种任务。如果需要对DolphinScheduler进行二次开发,并进行打包,需要按照以下步骤进行: 1. 克隆DolphinScheduler的源代码:在Github上找到DolphinScheduler的仓库并将其克隆到本地。 2. 将开发代码添加到源代码中:根据自己的需求,在克隆的源代码中添加新的功能或修改现有功能。可以根据实际情况修改调度器、执行器、调度API等。 3. 配置、编译和打包:根据二次开发所需的配置信息,修改`conf`目录下的相关配置文件。使用maven对代码进行编译,可以运行`mvn clean package -Dmaven.test.skip=true`命令进行打包,该命令会在`target`目录下生成打包结果。 4. 部署和运行:将打包的结果部署到服务器上,包括调度服务器和执行器节点。根据DolphinScheduler的部署文档将相关的配置文件、依赖库、打包结果等拷贝到相应的位置。运行DolphinScheduler的启动脚本以启动调度服务器和执行器节点。 5. 测试和验证:根据自己的需求进行相应的测试和验证,确保二次开发的功能能够正常运行。进行功能测试、性能测试、兼容性测试等,确保系统的稳定性和可靠性。 需要注意的是,二次开发需要对DolphinScheduler的源代码有一定的了解和熟悉。在进行二次开发之前,可以先阅读官方文档、源代码以及相关的社区讨论,这样能更好地理解整个系统的架构和设计理念,更方便进行二次开发和定制。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值