DolphinScheduler日誌亂碼、worker日誌太多磁碟報警、版本更新導致不相容怎麼辦?

海豚调度發表於2024-06-18

file

作者 | 劉宇星

本文作者總結了在使用Apache DolphinScheduler過程中遇見過的常見問題及其解決方案,包括日誌出現亂碼、worker日誌太多磁碟報警、版本更新導致不相容問題等,快來看看有沒有困擾你想要的答案吧!

  1. DolphinScheduler叢集環境有多臺worker(worker1, worker2, worker3),多個任務節點序列執行時,因為worker在不同伺服器上,執行排程任務需要的檔案需要每個worker上傳非常麻煩/後面執行的任務讀取不到前面任務執行後生成的檔案/資料,怎麼辦?

可以在worker之間配置共享目錄,如NFS,具體配置方式參考 https://blog.csdn.net/Dark_Tk/article/details/114100517。

或者配置worker組,只包含一個worker1,指定執行該工作流的worker組。

  1. 用shell節點執行shell指令碼時,中間某個命令執行報錯但沒有中斷退出,而是繼續執行,最後一行命令執行成功後整個節點的執行狀態也是成功,導致節點任務狀態與預期不符怎麼辦?

在當前指令碼第一行加上

set -xeuo pipefail

後,指令碼中的命令執行報錯後會立即退出(注意,該命令只對當前bash環境生效且無法繼承,對執行指令碼的子環境不生效)。

  1. 日誌出現亂碼怎麼辦?

DolphinScheduler新增啟動引數 -Dfile.encoding=utf-8 執行echo $LANG檢查系統編碼是否為 zh_CN.UTF-8 ,如不是則修改LANG環境變數為該值。

  1. 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>
  1. DolphinScheduler任務外掛太複雜/不會用/版本更新導致潛在的不相容問題,怎麼處理?

任務外掛的使用可以檢視官方文件 https://dolphinscheduler.apache.org/zh-cn/docs/3.2.1/功能介紹_menu/任務型別_menu

推薦使用shell替代其他任務節點型別,其他型別的任務外掛本質上也是在執行shell或有等效的命令列,當然這要求開發人員對相關任務命令列的使用也提出了更高的要求,好處是用shell更靈活,更解耦和,自行權衡利弊使用。

  1. 外掛裡的內容不方便做版本對比,怎麼處理?

建議針對業務內容維護單獨的git倉庫,更方便做版本對比和留痕。

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

相關文章