DolphinScheduler本地开发环境搭建

Apache DolphinScheduler

分布式易扩展的可视化工作流任务调度平台

关于DolphinScheduler

Apache DolphinScheduler是一个分布式易扩展的可视化DAG工作流任务调度开源系统。解决数据研发ETL 错综复杂的依赖关系,不能直观监控任务健康状态等问题。DolphinScheduler以DAG流式的方式将Task组装起来,可实时监控任务的运行状态,同时支持重试、从指定节点恢复失败、暂停及Kill任务等操作

简单易用

DAG监控界面,所有流程定义都是可视化,通过拖拽任务定制DAG,通过API方式与第三方系统对接, 一键部署

高可靠性

去中心化的多Master和多Worker, 自身支持HA功能, 采用任务队列来避免过载,不会造成机器卡死

丰富的使用场景

支持暂停恢复操作.支持多租户,更好的应对大数据的使用场景. 支持更多的任务类型,如 spark, hive, mr, python, sub_process, shell

高扩展性

支持自定义任务类型,调度器使用分布式调度,调度能力随集群线性增长,Master和Worker支持动态上下线

前置条件

在搭建 DolphinScheduler 开发环境之前请确保你已经安装以下软件:

  • Git: 版本控制系统
  • JDK: 后端开发
  • Maven: Java包管理系统
  • Node: 前端开发
    这里的安装步骤就不做过多介绍了

克隆代码库

通过你 git 管理工具下载 git 代码,下面以 git-core 为例

mkdir dolphinscheduler
cd dolphinscheduler
git clone ${your_dolphinscheduler}.git

修改POM

如果使用MySQL数据库,请注意修改pom.xml, 添加 mysql-connector-java 依赖。

DolphinScheduler 开发环境配置有两个方式,分别是standalone模式,以及普通模式
standalone模式:推荐使用,但仅支持 1.3.9 及以后的版本,方便快速的开发环境搭建,能解决大部分场景的开发
普通模式:master、worker、api等单独启动,能更好的的模拟真实生产环境,可以覆盖的测试环境更多

Standalone模式

DolphinScheduler Standalone快速开发模式 比较简单。

分支选择

开发不同的代码需要基于不同的分支

如果想基于二进制包开发,切换到对应版本的代码,如 1.3.9 则是 1.3.9-release
如果想要开发最新代码,切换到 dev 分支

启动后端

在 Intellij IDEA 找到并启动类 org.apache.dolphinscheduler.server.StandaloneServer 即可完成后端启动

启动前端

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

cd dolphinscheduler-ui
npm install
npm run start

截止目前,前后端已成功运行起来,浏览器访问 http://localhost:8888,并使用默认账户密码
admin / dolphinscheduler123 即可完成登录

普通开发模式

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

下载必要软件

Zookeeper

在 ZooKeeper 的解压目录下

将 conf 目录下的 zoo_sample.cfg 文件,复制一份,重命名为 zoo.cfg,修改其中数据和日志的配置,如:

dataDir=E:/xxxxx/data
dataLogDir=E:/xxxxx/datalog
运行 ./bin/zkServer.cmd

mysql

DolphinScheduler 的元数据存储在关系型数据库中,目前支持的关系型数据库包括 MySQL 以及 PostgreSQL。下面以MySQL为例,启动数据库并创建新 database 作为 DolphinScheduler 元数据库,这里以数据库名 dolphinscheduler 为例

创建完新数据库后,将 dolphinscheduler-dao\src\main\resources\sql\dolphinscheduler_mysql.sql 下的 sql 文件直接在 MySQL 中运行,完成数据库初始化。

启动后端

下面步骤将引导如何启动 DolphinScheduler 后端服务

必要的准备工作

  • 打开项目:使用开发工具打开项目,这里以 Intellij IDEA 为例,打开后需要一段时间,让 Intellij IDEA 完成以依赖的下载

  • 必要的修改: 在三个服务的各自模块下,复制 application.yaml 为新文件 application-mysql.yaml, 修改其中的数据库配置;修改 application-mysql.yaml 文件中的数据库配置(修改默认的PostgreSQL 为MySQL)

这里复制新文件是为了避免提交代码时误将配置文件的修改提交到dev分支

三个文件分别是:

dolphinscheduler-master\src\main\resources\application-mysql.yaml
dolphinscheduler-api\src\main\resources\application-mysql.yaml
dolphinscheduler-worker\src\main\resources\application-mysql.yaml
 spring:
   datasource:
     driver-class-name: com.mysql.jdbc.Driver
     url: jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8
     username: ds_user
     password: dolphinscheduler
  • 确认三个服务的端口是否相互占用
    一般不会,但是有必要确认下,比如 master用的 5678 worker也用5678 就会出现问题,修改一下即可。
编译源码
mvn clean install -Prelease -Dmaven.test.skip=true
启动后端服务

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

  • MasterServer:在 Intellij IDEA 中执行 org.apache.dolphinscheduler.server.master.MasterServer 中的 main 方法,并配置 VM Options -Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
  • WorkerServer:在 Intellij IDEA 中执行 org.apache.dolphinscheduler.server.worker.WorkerServer 中的 main 方法,并配置 VM Options -Dlogging.config=classpath:logback-spring.xml -Ddruid.mysql.usePingMethod=false -Dspring.profiles.active=mysql
  • ApiApplicationServer:在 Intellij IDEA 中执行 org.apache.dolphinscheduler.api.ApiApplicationServer 中的 main 方法,并配置 VM Options -Dlogging.config=classpath:logback-spring.xml -Dspring.profiles.active=api,mysql
  • 确认每个服务启动没有报错即可

启动完成可以浏览 Open API 文档,地址为 http://localhost:12345/dolphinscheduler/doc.html
VM Options -Dspring.profiles.active=mysql 中 mysql 表示指定的配置文件 application-mysql.yaml

前端服务

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

cd dolphinscheduler-ui
npm install
npm run start

截止目前,前后端已成功运行起来,浏览器访问http://localhost:8888,并使用默认账户密码 admin / dolphinscheduler123 即可完成登录

结语

本地开发环境这部分还是花了我一点时间,记录一下。 在官方手册上进行了一些修改,避免了一些坑

Source

DolphinScheduler 开发手册

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值