一、简介

Apache DolphinScheduler 是一个大数据调度任务框架。从当前的CSDN的GitCode的热度来看,其在2022年2月份排名第6位。那是相当的热门的

dolphinscheduler 配置python环境 dolphinscheduler参数_mysql

其是一个云原生的可视化的大数据工作流调度系统,其使命就是致力于解决复杂大数据任务依赖,默认就支持多个大数据任务之间的数据操作的编排。

相对于其他的大数据调度框架:azkaban、airflow、xxjob,DolphinScheduler 功能强大了不少!其支持的强大功能如下:

1. 本身就支持HA
2. 任务状态、任务类型、重试次数、任务运行机器、可视化变量等关键信息一目了然
3.任务队列机制,单个机器上可调度的任务数量可以灵活配置,当任务过多时会缓存在任务队列中,不会造成机器卡死
4. 任务状态、任务类型、重试次数、任务运行机器、可视化变量等关键信息一目了然
5. 所有流程定义操作都是可视化的,通过拖拽任务来绘制DAG,配置数据源及资源。同时对于第三方系统,提供api方式的操作。
6. 一键部署
7. 支持暂停,恢复操作
8. easyscheduler上的用户可以通过租户和hadoop用户实现多对一或一对一的映射关系,这对大数据作业的调度是非常重要的。
9. 支持传统的shell任务,同时支持大数据平台任务调度: MR、Spark、SQL(mysql、postgresql、hive、sparksql)、Python、Procedure、Sub_Process
10. 调度器使用分布式调度,整体的调度能力会随便集群的规模线性增长,Master和Worker支持动态上下线

二、架构

其基本架构如下,从下图可以看出,其主要包括下面的组件:

1. UI
2. API 网关
3. Master 服务器
4. Worker 服务器
5. DB(MySQL,PostgreSQL)
6. Zookeeper

dolphinscheduler 配置python环境 dolphinscheduler参数_mysql_02

启动流程图:

dolphinscheduler 配置python环境 dolphinscheduler参数_big data_03

DolphinScheduler提供3种部署模式:

1. 单节点部署模式
  主要是看看DolphinScheduler提供了哪些功能,感受一下DolphinScheduler的功能
2. 伪集群模式
  在单一服务器上部署多个集群,在测试环境下经常用到此模式,其需要连接数据库
3. 在生产环境部署,支持两个模式:
  1) 在多个服务器上集群部署
  2) 在K8S里面部署

参考博客:深入浅出Apache DolphinScheduler技术博客的博客

 官网地址:download

三、大数据调度系统为什么选型Apache DolphinScheduler ?

大数据调度系统为什么选型Apache DolphinScheduler ?

四、系统搭建

(单节点)

1. 解压

tar -zxvf apache-dolphinscheduler-3.0.0-alpha-bin.tar.gz -C 安装目录
mv apache-dolphinscheduler-3.0.0-alpha-bin dolphinscheduler-3.0.0

2. 目录结构(需要修改标红的服务配置)

dolphinscheduler 配置python环境 dolphinscheduler参数_Apache_04

 修改配置

bin/install_env.sh  (参考)

dolphinscheduler 配置python环境 dolphinscheduler参数_大数据_05

 bin/dolphinscheduler_env.sh  (参考)

dolphinscheduler 配置python环境 dolphinscheduler参数_big data_06

 master-server/bin/dolphinscheduler_env.sh  (参考)

dolphinscheduler 配置python环境 dolphinscheduler参数_大数据_07

 master-server/conf/application.yaml   修改datasource 和 ip

其他,alert-server、api-server、worker-server 修改参数参考 master-server

注意:worker-server/bin/start.sh

dolphinscheduler 配置python环境 dolphinscheduler参数_Apache_08

修改为 conf  

初始化数据库

DolphinScheduler 元数据存储在关系型数据库中,目前支持 PostgreSQL 和 MySQL,如果使用 MySQL 则需要手动下载 mysql-connector-java 驱动 (8.0.16) 并移动到 DolphinScheduler 的 lib目录下(tools/libs/  master-server/worker-server/api-server/alert-server 下的lib都需要上传mysql-connector-jar包)。

创建数据库 : 

CREATE DATABASE dolphinscheduler DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

然后修改./bin/env/dolphinscheduler_env.sh,将username和password改成你在上一步中设置的用户名{user}和密码{password}

export DATABASE=${DATABASE:-mysql}
export SPRING_PROFILES_ACTIVE=${DATABASE}
export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/dolphinscheduler?useUnicode=true&characterEncoding=UTF-8&useSSL=false"
export SPRING_DATASOURCE_USERNAME={user}
export SPRING_DATASOURCE_PASSWORD={password}

初始化数据库:sh tools/bin/upgrade-schema.sh

安装

dolphinscheduler-3.0.0/bin/install.sh  自动安装到指定的目录下

登录地址:http://localhost:12345/dolphinscheduler/ui

dolphinscheduler 配置python环境 dolphinscheduler参数_大数据_09

 启动服务

# 一键停止集群所有服务
sh ./bin/stop-all.sh

# 一键开启集群所有服务
sh ./bin/start-all.sh

# 启停 Master
sh ./bin/dolphinscheduler-daemon.sh stop master-server
sh ./bin/dolphinscheduler-daemon.sh start master-server

# 启停 Worker
sh ./bin/dolphinscheduler-daemon.sh start worker-server
sh ./bin/dolphinscheduler-daemon.sh stop worker-server

# 启停 Api
sh ./bin/dolphinscheduler-daemon.sh start api-server
sh ./bin/dolphinscheduler-daemon.sh stop api-server

# 启停 Alert
sh ./bin/dolphinscheduler-daemon.sh start alert-server
sh ./bin/dolphinscheduler-daemon.sh stop alert-server

五、目录结构

dolphinscheduler 配置python环境 dolphinscheduler参数_mysql_10

配置 资源中心 -> 文件管理

dolphinscheduler 配置python环境 dolphinscheduler参数_Apache_11

需要配置 api-server/conf/common.properties 和  worker-server/conf/common.properties 文件,完成配置后重启 api-server 和 worker-server 服务,会在hdfs上创建相对应的目录。

data.basedir.path=/dolphinscheduler/data
resource.storage.type=HDFS
resource.upload.path=/dolphinscheduler/data
hdfs.root.user=root
fs.defaultFS=hdfs://master:9001