Apache DolphinScheduler 如何从 1.2.1 升级到 1.3.4
关于 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 收藏一下哟~