作者 | 劉宇星
本文作者總結了在使用Apache DolphinScheduler過程中遇見過的常見問題及其解決方案,包括日誌出現亂碼、worker日誌太多磁碟報警、版本更新導致不相容問題等,快來看看有沒有困擾你想要的答案吧!
- DolphinScheduler叢集環境有多臺worker(worker1, worker2, worker3),多個任務節點序列執行時,因為worker在不同伺服器上,執行排程任務需要的檔案需要每個worker上傳非常麻煩/後面執行的任務讀取不到前面任務執行後生成的檔案/資料,怎麼辦?
可以在worker之間配置共享目錄,如NFS,具體配置方式參考 https://blog.csdn.net/Dark_Tk/article/details/114100517。
或者配置worker組,只包含一個worker1,指定執行該工作流的worker組。
- 用shell節點執行shell指令碼時,中間某個命令執行報錯但沒有中斷退出,而是繼續執行,最後一行命令執行成功後整個節點的執行狀態也是成功,導致節點任務狀態與預期不符怎麼辦?
在當前指令碼第一行加上
set -xeuo pipefail
後,指令碼中的命令執行報錯後會立即退出(注意,該命令只對當前bash環境生效且無法繼承,對執行指令碼的子環境不生效)。
- 日誌出現亂碼怎麼辦?
DolphinScheduler新增啟動引數 -Dfile.encoding=utf-8
執行echo $LANG
檢查系統編碼是否為 zh_CN.UTF-8
,如不是則修改LANG環境變數為該值。
- DolphinSchedulr worker的日誌太多太大了,磁碟經常警告空間不足,怎樣配置實現自動清理日誌?
在每個服務的 conf 目錄下都有 logback-spring.xml
可以配置日誌清理策略,根據需要自行配置。
<configuration>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日誌檔案輸出的檔名-->
<fileNamePattern>${LOG_FILE}-%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
<!--單個日誌檔案的最大體積-->
<maxFileSize>100MB</maxFileSize>
<!--日誌保留時長 30天-->
<maxHistory>30</maxHistory>
<!-- 所有歸檔日誌檔案的總大小 -->
<totalSizeCap>20GB</totalSizeCap>
<!-- 是否在應用啟動的時候刪除歷史日誌 -->
<cleanHistoryOnStart>true</cleanHistoryOnStart>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE" />
</root>
<configuration>
- DolphinScheduler任務外掛太複雜/不會用/版本更新導致潛在的不相容問題,怎麼處理?
任務外掛的使用可以檢視官方文件 https://dolphinscheduler.apache.org/zh-cn/docs/3.2.1/功能介紹_menu/任務型別_menu
推薦使用shell替代其他任務節點型別,其他型別的任務外掛本質上也是在執行shell或有等效的命令列,當然這要求開發人員對相關任務命令列的使用也提出了更高的要求,好處是用shell更靈活,更解耦和,自行權衡利弊使用。
- 外掛裡的內容不方便做版本對比,怎麼處理?
建議針對業務內容維護單獨的git倉庫,更方便做版本對比和留痕。
本文由 白鯨開源 提供釋出支援!