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 文件路径授权错误。

  

最新文章

  1. Java NIO (转)
  2. C++中的一些小知识
  3. Python笔记-集合,拷贝
  4. shell命令快捷键
  5. 【jQuery基础学习】07 jQuery表单插件-Form
  6. 获取手机的gps定位
  7. pthread_exit
  8. HTML5与移动端Web
  9. HDU 2674 N!Again(数学思维水题)
  10. Navigation Drawer介绍
  11. Android ActionBar(转)
  12. 使用URL创建网络连接、网络流的阻塞问题
  13. 苹果App Store开发者帐户从申请,验证,到发布应用(2)
  14. Linux 压缩解压及备份命令
  15. Ocelot 集成Butterfly 实现分布式跟踪
  16. linux优化项
  17. centos7源码包安装Mongodb,并设置开机自启动
  18. Python3学习之路~8.6 开发一个支持多用户在线的FTP程序-代码实现
  19. HNOI2016做题笔记
  20. gflags命令行参数解析

热门文章

  1. NOI2.2 8758:2的幂次方表示
  2. 使用luabind绑定box2d的lua接口
  3. 使用dlib基于CNN(卷积神经网络)的人脸检测器来检测人脸
  4. RSYNC 同步工具
  5. Docker(二):理解容器编排工具Kubernetes内部工作原理
  6. Scala 学习(8)之「trait (2) 」
  7. 在4K屏下以超过VMWare默认的最高分辨率运行Linux系统
  8. Codeforces 977B Two-gram(stl之string掉进坑)
  9. 题解 bzoj1954【Pku3764 The xor – longest Path】
  10. 安装ik分词插件