DolphinScheduler1.2.1源码分析
2024-10-08 07:52:24
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 文件路径授权错误。
最新文章
- Java NIO (转)
- C++中的一些小知识
- Python笔记-集合,拷贝
- shell命令快捷键
- 【jQuery基础学习】07 jQuery表单插件-Form
- 获取手机的gps定位
- pthread_exit
- HTML5与移动端Web
- HDU 2674 N!Again(数学思维水题)
- Navigation Drawer介绍
- Android ActionBar(转)
- 使用URL创建网络连接、网络流的阻塞问题
- 苹果App Store开发者帐户从申请,验证,到发布应用(2)
- Linux 压缩解压及备份命令
- Ocelot 集成Butterfly 实现分布式跟踪
- linux优化项
- centos7源码包安装Mongodb,并设置开机自启动
- Python3学习之路~8.6 开发一个支持多用户在线的FTP程序-代码实现
- HNOI2016做题笔记
- gflags命令行参数解析
热门文章
- NOI2.2 8758:2的幂次方表示
- 使用luabind绑定box2d的lua接口
- 使用dlib基于CNN(卷积神经网络)的人脸检测器来检测人脸
- RSYNC 同步工具
- Docker(二):理解容器编排工具Kubernetes内部工作原理
- Scala 学习(8)之「trait (2) 」
- 在4K屏下以超过VMWare默认的最高分辨率运行Linux系统
- Codeforces 977B Two-gram(stl之string掉进坑)
- 题解 bzoj1954【Pku3764 The xor – longest Path】
- 安装ik分词插件