Apache DolphinScheduler 如何从 1.2.1 升级到 1.3.4

2022-10-15,,,,

关于 Apache DolphinScheduler

Apache DolphinScheduler(incubator) 于 17 年在易观数科立项, 19 年 8 月进入 Apache 孵化器,已有 400+ 公司在生产上使用,代码+文档贡献者近 200 位。DolphinScheduler (简称DS)致力于使大数据任务调度开箱即用,它以拖拉拽的可视化方式将各种任务间的关系组装成 DAG(有向无环图),并实时监控整个数据pipeline的运行状态,同时支持失败重试、重跑、恢复失败、补数等大数据常用操作
GitHub 地址:http://github.com/apache/

DS 解决的问题

升级步骤

1、下载 1.3.4 安装包

wget https://mirror.bit.edu.cn/apache/incubator/dolphinscheduler/1.3.4/apache-dolphinscheduler-incubating-1.3.4-dolphinscheduler-bin.tar.gz

2、停止 dolphinscheduler( 简称 ds) 所有服务

sh ./bin/stop-all.sh

3、备份数据库和 ds 部署目录

3.1 备份 ds 软件目录(我是用 dolphinscheduler 这个用户部署 ds 1.2.1 到 /usr/local/ 下了)

mv /usr/local/dolphinscheduler  /usr/local/dolphinscheduler-1.2.1
mkdir dolphinscheduler
chown dolphinscheduler:dolphinscheduler dolphinscheduler
# 保险起见也备份一下 用于保存上传资源文件(shell脚本、jar等)的目录
cp /data01/dsdata/dolphinscheduler /data01/dsdata/dolphilnscheduler-1.2.1

3.2 备份数据库

mysqldump --login-path=xx_adm3306 -B dolphinscheduler > /data/dixxxo_bak.dmp

4、解压&安装

tar -zxvf apache-dolphinscheduler-incubating-1.3.4-dolphinscheduler-bin.tar.gz -C /opt/dolphinscheduler/

mv apache-dolphinscheduler-incubating-1.3.4-dolphinscheduler-bin  dolphinscheduler-1.3.4-bin

升级数据库

修改 conf/datasource.properties

#mysql

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dolphinscheduler?characterEncoding=UTF-8

spring.datasource.username=dolphinscheduler

spring.datasource.password=iixxx

拷贝数据库驱动包至 lib 目录 下

cp /usr/local/dolphinscheduler/lib/mysql-connector-java-8.0.18.jar   ./lib/

执行数据库升级脚本

sh ./script/upgrade-dolphinscheduler.sh

升级软件

修改 env/dolphinscheduler_env.sh (具体请以自己的hadoop、spark等各软件所在的路径为准)

export HADOOP_HOME=/opt/soft/hadoop

export HADOOP_CONF_DIR=/opt/soft/hadoop/etc/hadoop

export SPARK_HOME1=/opt/soft/spark1

export SPARK_HOME2=/opt/soft/spark2

export PYTHON_HOME=/usr/bin/python

export JAVA_HOME=/usr/local/java/jdk1.8.0_131

export HIVE_HOME=/opt/soft/hive

export FLINK_HOME=/opt/soft/flink

export DATAX_HOME=/usr/local/dataxnew/bin/datax.py

export PATH=$HADOOP_HOME/bin:$SPARK_HOME1/bin:$SPARK_HOME2/bin:$PYTHON_HOME:$JAVA_HOME/bin:$HIVE_HOME/bin:$PATH:$FLINK_HOME/bin:$DATAX_HOME:$PATH

修改 install.sh 配置内容(本案例是单机,多机也需修改下以下相关的配置即可)

vi config/install_config.conf

# postgresql or mysql

dbtype="mysql"

# db config

# db address and port

dbhost="127.0.0.1:3306"

# db username

username="dolphinscheduler"

# database name

dbname="dolphinscheduler"

# db passwprd

password="iiwxxxk"

# zk cluster

zkQuorum="ds1:2181"

installPath="/usr/local/dolphinscheduler"

# deployment user

deployUser="dolphinscheduler"

# alert config

# mail server host

mailServerHost="smtp.163.com"

# mail server port

mailServerPort="465"

# sender

mailSender="176xxxx668@163.com"

# user

mailUser="176xx6668"

# sender password

mailPassword="Dxx9870108"

# TLS mail protocol support

starttlsEnable="false"

# SSL mail protocol support

sslEnable="true"

#note: sslTrust is the same as mailServerHost

sslTrust="smtp.163.com"

# resource storage type:HDFS,S3,NONE

resourceStorageType="HDFS"

# if resourceStorageType is HDFS,defaultFS write namenode address

defaultFS="file:///data01/dsdata/dolphinscheduler"

# resource store on HDFS/S3 path,

resourceUploadPath="/data01/dsdata/dolphinscheduler/hdfs"

# who have permissions to create directory under HDFS/S3 root path

hdfsRootUser="dolphinscheduler"

# kerberos config

kerberosStartUp="false"

# api server port

apiServerPort="12345"

# install hosts

ips="ds1"

# ssh port, default 22

sshPort="60022"

# run master machine

masters="ds1"

# run worker machine

workers="ds1:default"

# run alert machine

alertServer="ds1"

# run api machine

apiServers="ds1"

以下文件可在执行安装脚本后执行,安装脚本会替换下面文件中的参数值,但是有些参数不会替换需要手动修改确认。

修改 common.properties

data.basedir.path=/data01/dsdata/dolphinscheduler

修改 zookeeper.properties

zookeeper.quorum=ds1:2181

zookeeper.dolphinscheduler.root=/dolphinscheduler

zookeeper.session.timeout=60000

zookeeper.connection.timeout=30000

zookeeper.retry.base.sleep=100

zookeeper.retry.max.sleep=30000

zookeeper.retry.maxtime=10

修改master.properties

master.max.cpuload.avg=100

master.reserved.memory=0.1

修改worker.properties

worker.max.cpuload.avg= 100

worker.reserved.memory=0.1

最后执行升级脚本

sh install.sh

升级后遇到的问题总结

1、管理控制台无法登陆

http://10.4.34.15:12345/dolphinscheduler/ui/#/home

清理浏览器缓存并登陆管理后台

2、任务分发失败提示没有分组(我1.2.1配置有datax worker group组)

添加分组 1.2.1 分组是通过界面控制,1.3.4 分组通过配置文件 worker.properties 在该配置文件中添加

worker.groups=default,datax

写在文末

因为 DS 在设计之初就确定了版本向后兼容的目标,整个升级过程来说还是不难,但生产环境无小事,建议在升级过程中能先测试演练的先演练一遍,练熟了在升级生产环境

Who's using DolphinScheduler

参与贡献

随着国内开源的崛起,DolphinScheduler迎来了蓬勃发展,为了做更好用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,青春在开源上留下一点印记

参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度

社区汇总了以下适合新手的问题列表:https://github.com/apache/incubator-dolphinscheduler/issues/4124

如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/docs/development/contribute.html

文档 github 地址:https://github.com/apache/incubator-dolphinscheduler-website

来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的

如果您想参与贡献,却发现上述方法都搞不明白,也没关系,我们有个开发者种子孵化群,可以添加微信(easyworkflow) 手把手教会您,添加时请说明想参与贡献哈

DolphinScheduler开源社区非常期待您的参与。

DolphinScheduler's Github Repo 传送门

↓↓↓

https://github.com/apache/incubator-dolphinscheduler

喜欢️ DolphinScheduler 的话,别忘了 Star 收藏一下哟~

Apache DolphinScheduler 如何从 1.2.1 升级到 1.3.4的相关教程结束。

《Apache DolphinScheduler 如何从 1.2.1 升级到 1.3.4.doc》

下载本文的Word格式文档,以方便收藏与打印。