運(yùn)維實(shí)戰(zhàn):DolphinScheduler 生產(chǎn)環(huán)境升級(jí)
說(shuō)明:本篇是基于DolphinScheduler 3.1.3升級(jí)到3.1.4版本的升級(jí)。
背景:在使用DolphinScheduler 3.1.3版本的過(guò)程中發(fā)現(xiàn)前端部分頁(yè)面有顯示時(shí)間差的問(wèn)題,具體如下;
其他部分顯示的時(shí)間都是和本地時(shí)間一致的,只有任務(wù)實(shí)例的提交時(shí)間、開(kāi)始時(shí)間、結(jié)束時(shí)間部分和本地的時(shí)間相差13個(gè)小時(shí)。通過(guò)更改頁(yè)面的時(shí)區(qū)無(wú)法實(shí)現(xiàn)時(shí)間的正常顯示;
此時(shí)官網(wǎng)已經(jīng)發(fā)布了3.1.4最新版本,且修復(fù)了一些已知的bug;于是決定升級(jí)到最新版本,看是否能解決此問(wèn)題;

最新版本修復(fù)bug
https://github.com/apache/dolphinscheduler/releases/tag/3.1.4

升級(jí)準(zhǔn)備:
1、下載最新的二進(jìn)制安裝包,或者通過(guò)最新的源碼編譯;
下載地址:https://dolphinscheduler.apache.org/zh-cn/download/3.1.4

2、DolphinScheduler?元數(shù)據(jù)備份
DolphinScheduler 在版本的改動(dòng)上是有一些不向前兼容的更改,如果升級(jí)中版本的跨越涉及到,需要做對(duì)應(yīng)的調(diào)整;
具體的說(shuō)明可以參考官網(wǎng)的說(shuō)明:https://dolphinscheduler.apache.org/zh-cn/docs/3.1.4/guide/upgrade/incompatible
升級(jí)過(guò)程中都會(huì)有升級(jí)失敗的風(fēng)險(xiǎn),所以如果想在升級(jí)失敗的狀態(tài)下回滾,就需要把存儲(chǔ)的元數(shù)據(jù)做備份,這里是以mysql的數(shù)據(jù)備份為例,其他的請(qǐng)結(jié)合數(shù)據(jù)庫(kù)的具體情況來(lái)定;
#備份mysql整個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)
3、修改新版本的配置
解壓最新的安裝到到特定的目錄
編輯對(duì)應(yīng)的配置文件,這里涉及的到的配置文件包含下面幾項(xiàng),具體的內(nèi)容參考《
1、Dolphin3 安裝篇》;
install_env.sh ?一鍵部署工具依賴(lài)的配置,工具將依賴(lài)此配置來(lái)部署集群的服務(wù)節(jié)點(diǎn);
dolphinscheduler_env.sh ?服務(wù)在啟動(dòng)運(yùn)行中依賴(lài)的配置環(huán)境;
common.properties ?配置文件在每個(gè)服務(wù)組件都有用到,這里沒(méi)有通過(guò)統(tǒng)一的配置文件進(jìn)行分發(fā),需要我們分別手動(dòng)配置;
alert-server/conf/common.properties
api-server/conf/common.properties
master-server/conf/common.properties
worker-server/conf/common.properties
說(shuō)明:這里只有一處是需要修改的,就是新版本的安裝目錄的配置要和舊版本的安裝目錄不相同,具體更改如下;
cat /home/dolphin3/apache-dolphinscheduler-3.1.4-bin/bin/env/dolphinscheduler_env.sh

4、更新數(shù)據(jù)庫(kù)
執(zhí)行數(shù)據(jù)庫(kù)的升級(jí),需要保證“3”步驟中dolphinscheduler_env.sh 文件中關(guān)于數(shù)據(jù)庫(kù)鏈接的配置和老版本的完全一致;
另外需要下載對(duì)應(yīng)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序包到./tools/libs
?目錄下;
使用的是mysql的話(huà),可以直接下載mysql-connector-java-8.0.16.jar 使用;
同時(shí)也需要把mysql-connector-java-8.0.16.jar拷貝到其他模塊的lib目錄下;
執(zhí)行數(shù)據(jù)庫(kù)升級(jí)腳本
注意:在執(zhí)行這個(gè)步驟就需要把老集群完全停掉了;
5、啟用最新版本的服務(wù)
等待腳本執(zhí)行完成,然后檢查所有的服務(wù)狀態(tài);

6、驗(yàn)證新版本功能
登錄web頁(yè)面,選定時(shí)區(qū),再次執(zhí)行任務(wù)就可以正常顯示時(shí)間了。

總結(jié):整體的升級(jí)過(guò)程不算很復(fù)雜,只需要在中間的配置過(guò)程中保證配置上和老集群保持一致。