大資料排程器--單機版Apache DolphinScheduler 入門到實踐:進階

海豚调度發表於2024-10-16

在現代資料處理和工作流管理中,Apache DolphinScheduler 以其強大的排程能力和易用性,成為了許多企業和開發者的首選工具。

本文將深入探討 DolphinScheduler 的進階使用技巧,包括引數傳遞、資源中心管理、告警通知配置,以及如何在真實專案中高效使用 DolphinScheduler。

進階使用

引數傳遞

引數傳遞是 DolphinScheduler 中的一項重要功能,它允許使用者在任務之間共享資料。

  • 區域性變數:僅在單個任務中有效,適用於特定任務的獨立配置。
  • 全域性變數:在多個任務間共享,適合跨任務傳遞日期、配置等通用資訊。

區域性變數-只針對單個任務

工作流上線,執行,檢視A的日誌,發現列印了。

全域性變數-多個任務中都需要一個欄位


目前 A\B\C 任務都需要一個變數 dt

在儲存工作流的時候,彈出來的介面可以指定全域性變數。

執行結果:


)

B和C都是列印的2023-7-20,唯獨A列印的是2023-7-18

因為A設定了區域性變數,當一個任務有區域性變數又有全域性變數的時候,以區域性變數的值為準(就近原則)

日期

Linux中獲取前一天資料的命令:date -d '1 day ago' +'%y%m%d'
 
date1=`date -d '1 day ago' +'%y%m%d'`

Apache DolphinScheduler提供了一些時間相關的系統引數,方便定時排程使用。

系統引數

格式太固定,沒法自定義

引數 說明
$ 定時時間前一天,格式為yyyyMMdd
$ 定時時間,格式為yyyyMMdd
$ 定時時間,格式為yyyyMMddHHmmss

實戰

檢視B的日誌:

自定義時間

引數 說明
$[add_months(yyyyMMdd,12*N)] 後N 年
$[add_months(yyyyMMdd,-12*N)] 前N 年
$[add_months(yyyyMMdd,N)] 後N 月
$[add_months(yyyyMMdd,-N)] 前N 月
$[yyyyMMdd+7*N] 後N 周
$[yyyyMMdd-7*N] 前N 周
$[yyyyMMdd+N] 後N 天
$[yyyyMMdd-N] 前N 天
$[HHmmss+N/24] 後N 小時
$[HHmmss-N/24] 前N 小時
$[HHmmss+N/24/60] 後N 分鐘
$[HHmmss-N/24/60] 前N 分鐘
在C任務中

自定義日期格式

$[yyyyMMdd], $[HHmmss], $[yyyy-MM-dd]
$[yyyyMMdd]也可以寫成$[yyyy-MM-dd]
$[HHmmss] 也可以新增: $[HH:mm:ss]

資源中心

資源中心是 DolphinScheduler 的檔案管理平臺,支援使用者上傳和管理資原始檔。

  • 資源上傳:使用者可以將指令碼、資料檔案等上傳到資源中心,方便在任務中引用。
  • 資源使用:在任務配置中直接引用資源中心的檔案,提高資源複用性和管理效率。

資源上傳

儲存之後其實本質上是上傳到了HDFS路徑下。

資源使用

資源如何使用?

告警通知

告警通知是確保任務狀態及時反饋給使用者的重要機制。

DS是一個任務排程工具,當任務執行很慢的時候,我們需要一個告警通知,不管是成功還是失敗,都需要第一時間收到通知。

  • 郵件告警:配置郵件伺服器,任務執行完成後傳送郵件通知,適用於任務狀態報告和異常通知。
  • SMS 告警:傳送簡訊通知,適用於緊急情況的通知,但注意可能存在功能限制或 Bug。

郵件告警

在任務流執行時,指定告警者組:

以下是 DS 1.x 版本進行郵箱告警的配置:

需要一個能夠傳送郵件的郵箱(這個郵箱是一個傳送方,需要將資訊傳送給需要的人)

vi /opt/installs/dolphinscheduler/conf/alert.properties 
 
不要修改/opt/modules下的dolphinscheduler,這個資料夾下的內容在你安裝完之後的那一刻已經沒有任何價值了。

修改郵箱伺服器的配置:

修改alert.properties中的檔案:
 
# mail server configuration
mail.protocol=SMTP
mail.server.host=smtp.163.com
mail.server.port=25
mail.sender=18638147931@163.com
mail.user=18638147931@163.com
mail.passwd=MAGBDQDGKEHCBVQA
# TLS
mail.smtp.starttls.enable=false
# SSL
mail.smtp.ssl.enable=false
mail.smtp.ssl.trust=smtp.exmail.qq.com

重啟Alert服務:

./bin/dolphinscheduler-daemon.sh start alert-server
./bin/dolphinscheduler-daemon.sh stop alert-server

驗證是否可用:

記得同步一下時間。假如需要你做一個電話通知,怎麼辦?因為平臺是預設不支援電話的。

使用第三方平臺 -- 睿象雲
只需要獲取一個睿象雲的郵箱即可得到電話通知。

工作流重跑

當一個工作流特長,任務特別複雜的時候,執行到某一處失敗了,下一次想從失敗的地方開始執行,而不是重新開始。


修改任務,將失敗的地方修復一下,開始執行。

  • 重跑:從頭開始,再來一遍

  • 恢復失敗:從失敗的節點開始執行,直到執行結束。



關閉 Linux 中的提醒

在 Linux 系統中,有時候需要關閉郵件提醒,可以透過以下命令實現:

cat /dev/null > /var/spool/mail/root
echo "unset MAILCHECK" >> /etc/profile
source /etc/profile

總結

Apache DolphinScheduler 提供了豐富的功能和靈活的配置選項,使其成為處理複雜工作流和資料管道的理想工具。

無論是在引數傳遞、資源管理,還是在告警通知和專案自動化方面,DolphinScheduler 都能提供強大的支援。透過本文的介紹,希望能幫助您更深入地理解 DolphinScheduler 的使用,以及如何在實際專案中高效地應用它。

本文來源於網路,原文連結:https://blog.csdn.net/weixin_64726356/article/details/142160565

本文由 白鯨開源 提供釋出支援!

相關文章