从0-1搭建DolphinScheduler开发环境

2020-07-10 12:23:46 浏览数 (1)

1

文档编写目的

  • 记录从0-1搭建DolphinScheduler开发环境的过程(mac)
  • 便于更多有意愿贡献ds的老铁搭建开发环境参与贡献

2

所需前置条件

需要安装好-jdk maven mysql

nvm

github链接:https://github.com/nvm-sh/nvm

代码语言:javascript复制
# 安装nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
# 刷新profile
source ~/.bash_profile
代码语言:javascript复制
# 安装指定的node版本
nvm install v12.12.0
# 配置npm源
npm config set registry https://registry.npm.taobao.org/

nvm安装完成

zookeeper

下载链接:

https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz

  • 在conf目录下新建zoo_sample.cfg文件的的副本,并将副本改名为zoo.cfg
  • 本地启zk需要注意下 zk的数据目录
代码语言:javascript复制
cp zoo_sample.cfg zoo.cfg

启动zookeeper

代码语言:javascript复制
# 启动zk
./zkServer.sh start
# 停止zk
./zkServer.sh stop

zk安装完成

3

开发环境搭建

获取代码

  • fork项目到自己的仓库
  • 拉取自己仓库中的ds代码
代码语言:javascript复制
# clone fork下来的代码
git clone https://github.com/Eights-Li/incubator-dolphinscheduler.git

后端开发环境搭建

  • 导入idea,刷下maven,执行源码编译命令,在pom中注释掉ui模块
代码语言:javascript复制
# 执行编译命令
mvn -U clean package -Prelease -Dmaven.test.skip=true
  • 在apiserver启动类上指定配置文件
代码语言:javascript复制
@PropertySource(ignoreResourceNotFound = false, value = "classpath:application-api.properties")
  • 去除pom中的mysql的scope
  • 配置dao模块中的数据库连接信息
  • 配置zk连接信息
指定各模块的配置文件
代码语言:javascript复制
@PropertySource(ignoreResourceNotFound = false, value = "classpath:master.properties")

@PropertySource(ignoreResourceNotFound = false, value = "classpath:worker.properties")
  • 在worker-server启动的vm option中添加日志配置,否则会出现task instance的log path为空,导致本地调试不正常
代码语言:javascript复制
-Dspring.profiles.active=worker -Dlogging.config="dolphinscheduler-server/src/main/resources/logback-worker.xml"
  • 启动三个服务 api master worker, 正常启动表明后端开发环境搭建完成

前端开发环境搭建

  • 采用webstorm导入ds的前端模块,运行npm install
  • 在拉取依赖包的过程中出现node-sass错误,则需要执行一下
代码语言:javascript复制
npm install node-sass --unsafe-perm
# 如果提示需要rebuild node-sass 则执行
npm rebuild node-sass
手动安装node-sass

网不好(没梯子)的老铁可能会遇到node-sass的安装问题,这里提供手工安装node-sass的流程

下载node-sass的安装包

https://github.com/sass/node-sass/releases

代码语言:javascript复制
# 设置环境变量
set SASS_BINARY_PATH=$NodeSassFile

node-sass依赖node-gyp下载node-header.tar.gz,需要下载node的headers文件

如node-v8.16.2-headers.tar.gz,将该包上传到服务器指定目录/home/dscheduler/node-header中

下载地址:

https://nodejs.org/download/release/v8.16.2/

  • 设置对应的header路径
代码语言:javascript复制
npm config set tarball /home/dscheduler/node-header/node-v8.16.2-headers.tar.gz
执行安装node-sass
set SASS_BINARY_PATH=$NodeSassFile && npm install node-sass
代码语言:javascript复制

4

开发环境前后端测试

初始化数据库

在mysql中执行数据库创建命令

代码语言:javascript复制
CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE
utf8_general_ci;
CREATE USER 'dscheduler'@'%' IDENTIFIED BY 'dscheduler';
GRANT ALL PRIVILEGES ON dolphinscheduler.* TO 'dscheduler'@'%' IDENTIFIED BY 'dscheduler';
flush privileges;

执行dao模块下的CreateDolphinScheduler

数据库创建成功

启动前后端服务

在idea中启动 api master worker

修改前端项目中的.env文件

代码语言:javascript复制
# back end interface address
API_BASE = http://localhost:12345
# If IP access is required for local development, remove the "#"
DEV_HOST = 127.0.0.1

运行npm run start启动前端页面,访问http://localhost:8888/

采用管理员账户admin dolphinscheduler123进行登陆,出现页面即整个项目的页面,则开发环境搭建完成

5

本地运行第一个shell任务

新建一个租户

将管理员用户挂到新建的租户上

建立一个HelloDolphinScheduler的shell任务

上线运行

运行成功

然后就可以愉快的在本地玩耍DolphinScheduler了!!!

0 人点赞