2021-12-27
2021SC@SDUSC—DolphinScheduler(14)
1。
1.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都给脱敏了!
2.配置文件适当合并
这主要是设计配置项的合并,就是把多个配置文件合并成一个,减少配置文件数量。可创建包含 “.” 的用户名,主要是修改了用户名校验的正则表达式。
public static final Pattern REGEX_USER_NAME = Pattern.compile("^[a-zA-Z0-9._-]{3,20}$");
3.可切换 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;
}
issue里面描述的去除 Master 和 Worker 监听端口(5566,7788)