DolphinScheduler1.2.1源碼分析


  DolphinScheduler在2020年2月24日發布了新版本1.2.1,從版本號就可以看出,這是一個小版本。主要涉及BUG修復、功能增強、新特性三個方面,我們會根據其發布內容,做簡要的源碼分析。

  由於涉及內容較多,前端功能不再分析。

Worker Server日志脫敏

  主要是對日志中的密碼進行脫敏。我們知道worker的日志是通過logback打印的,官方也就是通過配置conversionRule來實現過濾的。實現邏輯比較簡單,核心代碼如下:

@Override
    public String convert(ILoggingEvent event) {

        // get original log
        String requestLogMsg = event.getFormattedMessage();

        // desensitization log
        return convertMsg(requestLogMsg);
    }

public static final String DATASOURCE_PASSWORD_REGEX = "(?<=(\"password\":\")).*?(?=(\"))";

  其實就是在打印日志的時候,通過正則表達式,把password給過濾掉了。個人不太喜歡這個實現方式,畢竟原PR的需求就是不要打印調度本身配置的數據源的密碼信息,結果官方把所有的日志中的password都給脫敏了!

配置文件適當合並

  這主要是設計配置項的合並,就是把多個配置文件合並成一個,減少配置文件數量。據說后面的版本又要拆開了。

可創建包含 "." 的用戶名

  這個主要是修改了用戶名校驗的正則表達式。

public static final Pattern REGEX_USER_NAME = Pattern.compile("^[a-zA-Z0-9._-]{3,20}$");

可切換 Spark 版本

  主要是解決多spark版本切換的問題。核心代碼如下,其實就是根據當前參數選擇對應的spark-submit

  private static final String SPARK1_COMMAND = "${SPARK_HOME1}/bin/spark-submit";
  private static final String SPARK2_COMMAND = "${SPARK_HOME2}/bin/spark-submit";

..................
 String sparkCommand = SPARK2_COMMAND;

    if (SparkVersion.SPARK1.name().equals(sparkParameters.getSparkVersion())) {
      sparkCommand = SPARK1_COMMAND;
    }

去除 Master 和 Worker 監聽端口(5566,7788)

  issue里面說的比較清楚,就不再分析

其他的都是一些BUG修復,或特性的增強,整體來說分析的意義不是很大,就不再一一研究,等下一個改動較大的版本再說。

新特性:

  • [#1497] 通過 API 創建的工作流在前端展示時自動調整布局。
  • [#747] Worker server 運行日志脫敏。
  • [#1635] 配置文件適當合並。
  • [#1547] 節點內容編輯支持全屏縮放。

增強:

  • [#184] 被工作流引用的 worker 不能被刪除。
  • [#1441] 可創建包含 "." 的用戶名。
  • [#839] 可切換 Spark 版本。
  • [#1511] 前后端編譯文件合並。
  • [#1509] 去除 Master 和 Worker 監聽端口(5566,7788)。
  • [#1575] 去除 kazoo ,簡化部署。
  • [#1300] 郵件內容可右對齊。
  • [#1599] 增加前端部署的 nginx 配置文件。
  • 支持 Mac 進行開發和 debug。

Bug 修復:

  • 特定情況下彈出框不能關閉。
  • [#1399] 日志信息中字段順序錯誤。
  • [#1379] sql 任務節點日期轉換錯誤。
  • [#1477] 特定情況下,數據庫延遲的時候,任務會一直執行。
  • [#1514] 隊列關聯用戶后修改隊列信息,新修改的隊列信息未保存到數據庫。
  • [#1768] 用戶管理分頁錯誤
  • [#1770] 用戶取消租戶關聯后,仍能使用原租戶 hdfs 的資源。
  • [#1779] 子進程失敗后仍顯示成功。
  • [#1789] 通過任務實例頁面查看任務執行歷史顯示錯誤。
  • [#1810] 特定情況下,依賴節點不顯示具體依賴。
  • [#1816] 添加多個依賴后,再添加新的依賴時,依賴列表讀取錯誤。
  • [#1828] UDF 授權后,UDF 文件路徑授權錯誤。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM