写点什么

海豚调度 dolphinscheduler SQL 脚本初始化流程

用户头像
cloudcoder
关注
发布于: 2021 年 03 月 01 日

海豚调度 dolphinscheduler 目前是 Apache 顶级项目,作为国内优秀的开源项目,它的架构设计理念会有很多值得我们学习和借鉴。


海豚调度dolphinscheduler是分布式易扩展的可视化 DAG 工作流任务调度系统


本文会包含如下内容:

  • dolphinscheduler 部署时,如何进行数据库脚本初始化

  • dolphinscheduler 如何维护不同版本的数据库脚本

本篇文章适合人群:架构师、技术专家以及对任务调度非常感兴趣的高级工程师


本文以海豚 1.3.5 的源代码,分析数据库脚本初始化流程。

1. 数据库脚本初始化流程

在第一次部署海豚调度或针对已有的海豚调度进行升级时,需要初始化数据库脚本,执行的命令是: sh script/create-dolphinscheduler.sh

对应的代码入口是:org.apache.dolphinscheduler.dao.upgrade.shell.CreateDolphinScheduler



实现了如下功能:

1.1 初始化 schema

  1. 检查版本表是否存在(t_escheduler_version、t_ds_version、t_escheduler_queue 中的一个是否存在)

  2. 如果不存在,则根据数据库类型(目前支持 MySQL、PostgreSQL 两种),初始化海豚的元数据定义及初始化语句, 如果存在,则跳过此步


1.2 升级 schema

  • 在如下目录,获取所有升级需要的 schema 列表

  • 获取海豚调度当前的版本

  • 循环 schema 列表,只要待升级的 schema 的版本大于当前版本,则执行升级脚本

1.3 初始化流程



2. 如何维护数据库版本

海豚的元数据定义,请参见: https://dolphinscheduler.apache.org/zh-cn/docs/1.3.5/user_doc/metadata-1.3.html


在 sql/create 中,定义海豚的元数据 schema 及数据初始化语句

在 sql/upgrade 中,定义每次版本升级中,修改的 schema 及增加的初始化语句

注意:

  • 如果涉及到修改升级前版本的数据,则使用 JAVA 实现,如升级到 1.3.4 版本,需要修改原流程中的 sqoop 任务的参数配置。

  • 升级脚本是基于上一版本的 schema 调整的。升级时,依次升级,则从版本 1.3.1 升级到 1.3.5,则需要依次先升级到 1.3.2, 再升级 1.3.3, 再升级 1.3.4, 最后升级到 1.3.5


发布于: 2021 年 03 月 01 日阅读数: 16
用户头像

cloudcoder

关注

10+IT行业老兵,熟悉大数据处理,分布式编程 2020.10.30 加入

InfoQ主页:https://www.infoq.cn/u/cloudcoder 头条主页: https://www.toutiao.com/c/user/token/MS4wLjABAAAAgqsp3gTUFRwr49uODP0W6XdaDB2vI5d_9yPDC1Nzmds/

评论

发布
暂无评论
海豚调度dolphinscheduler SQL脚本初始化流程