diff options
| author | doufenghu <[email protected]> | 2023-12-22 09:59:44 +0800 |
|---|---|---|
| committer | doufenghu <[email protected]> | 2023-12-22 09:59:44 +0800 |
| commit | 2257feeee39e71d5dade02e7e4d47ca144f75bad (patch) | |
| tree | 3716a3bcfe6cc1144f52a6526bd5bd1ab4f8220e /groot-bootstrap | |
| parent | 24e4df2fb59645879be600eb4ca99656c577f2c9 (diff) | |
[Improve][Config]优化配置加载方式。在命令行启动时,通过增加默认参数的方式加载全局配置文件和UDF配置。
Diffstat (limited to 'groot-bootstrap')
6 files changed, 54 insertions, 22 deletions
diff --git a/groot-bootstrap/src/main/bin/start.sh b/groot-bootstrap/src/main/bin/start.sh index bdc1a5e..b46703e 100755 --- a/groot-bootstrap/src/main/bin/start.sh +++ b/groot-bootstrap/src/main/bin/start.sh @@ -18,6 +18,7 @@ while [ -h "$PRG" ] ; do done PRG_DIR=`dirname "$PRG"` +# shellcheck disable=SC2006 APP_DIR=`cd "$PRG_DIR/.." >/dev/null; pwd` CONF_DIR=${APP_DIR}/config APP_JAR=${APP_DIR}/bootstrap/groot-bootstrap.jar @@ -35,17 +36,35 @@ else fi set +u + +if [ -z $HAZELCAST_CONFIG ]; then + HAZELCAST_CONFIG=${CONF_DIR}/hazelcast.yaml +fi + +if [ -z $GROOTSTREAM_CONFIG ]; then + GROOTSTREAM_CONFIG=${CONF_DIR}/grootstream.yaml +fi + +if [ -z $UDF_CONFIG ]; then + UDF_CONFIG=${CONF_DIR}/udf.plugins +fi + +args="${args:-} -i grootstream.config=${GROOTSTREAM_CONFIG}" +args="${args:-} -i hazelcast.config=${HAZELCAST_CONFIG}" +args="${args:-} -i udf.config=${UDF_CONFIG}" + # Log4j2 Config if [ -e "${CONF_DIR}/log4j2.properties" ]; then - JAVA_OPTS="${JAVA_OPTS} -Dlog4j2.configurationFile=${CONF_DIR}/log4j2.properties" - JAVA_OPTS="${JAVA_OPTS} -Dgrootstream.logs.path=${APP_DIR}/logs" - JAVA_OPTS="${JAVA_OPTS} -Dgrootstream.logs.file_name=groot-stream-runner" + JAVA_OPTS="${JAVA_OPTS:-} -Dlog4j2.configurationFile=${CONF_DIR}/log4j2.properties" + JAVA_OPTS="${JAVA_OPTS:-} -Dgrootstream.logs.path=${APP_DIR}/logs" + JAVA_OPTS="${JAVA_OPTS:-} -Dgrootstream.logs.file_name=groot-stream-runner" fi -echo ${JAVA_OPTS} + CLASS_PATH=${APP_DIR}/bootstrap/logging/*:${APP_JAR} CMD=$(java ${JAVA_OPTS} -cp ${CLASS_PATH} ${APP_MAIN} ${args}) && EXIT_CODE=$? || EXIT_CODE=$? + if [ ${EXIT_CODE} -eq 2618 ]; then # print usage echo "${CMD}" diff --git a/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/CommandArgs.java b/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/CommandArgs.java index c9d2eaf..ae904a7 100644 --- a/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/CommandArgs.java +++ b/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/CommandArgs.java @@ -40,7 +40,7 @@ public abstract class CommandArgs { description = "job name") protected String jobName = Constants.DEFAULT_JOB_NAME; - protected List<String> originalParameters; + protected List<String> originalParameters = Collections.emptyList(); public abstract Command<?> buildCommand(); diff --git a/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/ExecuteCommand.java b/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/ExecuteCommand.java index e1f11d5..3510daa 100644 --- a/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/ExecuteCommand.java +++ b/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/ExecuteCommand.java @@ -15,17 +15,9 @@ import com.typesafe.config.ConfigObject; import com.typesafe.config.ConfigUtil; import com.typesafe.config.ConfigValueFactory; import lombok.extern.slf4j.Slf4j; - -import java.io.File; import java.nio.file.Path; import java.util.Map; -import java.util.Properties; - import static com.geedgenetworks.bootstrap.utils.ConfigFileUtils.checkConfigExist; -import static com.geedgenetworks.common.Constants.MAPPING_GROOTSTREAM_UDF; -import static com.geedgenetworks.common.Constants.MAPPING_GROOTSTREAM_UDF_DEFAULT_PLUGIN; -import static com.hazelcast.internal.config.DeclarativeConfigUtil.SYSPROP_MEMBER_CONFIG; - @Slf4j public class ExecuteCommand implements Command<ExecuteCommandArgs> { private final ExecuteCommandArgs executeCommandArgs; @@ -36,14 +28,7 @@ public class ExecuteCommand implements Command<ExecuteCommandArgs> { @Override public void execute() throws CommandExecuteException, ConfigCheckException { - // Default System Properties - Properties properties = System.getProperties(); - properties.setProperty(Constants.SYSPROP_GROOTSTREAM_CONFIG, "config" + File.separator + Constants.HAZELCAST_GROOTSTREAM_DEFAULT_YAML); - properties.setProperty(SYSPROP_MEMBER_CONFIG, "config" + File.separator + "hazelcast.yaml"); - properties.setProperty(MAPPING_GROOTSTREAM_UDF, "config" + File.separator + MAPPING_GROOTSTREAM_UDF_DEFAULT_PLUGIN); - GrootStreamConfig grootStreamConfig = ConfigProvider.locateAndGetGrootStreamConfig(); - Path configFile = ConfigFileUtils.getConfigPath(executeCommandArgs); // check config file exist checkConfigExist(configFile); diff --git a/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/ExecuteCommandArgs.java b/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/ExecuteCommandArgs.java index 97bd228..fbf28f1 100644 --- a/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/ExecuteCommandArgs.java +++ b/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/command/ExecuteCommandArgs.java @@ -7,12 +7,15 @@ import com.geedgenetworks.bootstrap.enums.TargetType; import com.geedgenetworks.bootstrap.execution.StartBuilder; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.List; +import java.util.Objects; @EqualsAndHashCode(callSuper = true) @Data +@Slf4j public class ExecuteCommandArgs extends CommandArgs { @Parameter(names={"-e", "--deploy-mode"}, @@ -30,8 +33,9 @@ public class ExecuteCommandArgs extends CommandArgs { @Override public Command<?> buildCommand() { StartBuilder.setDeployMode(getDeployMode()); + userParamsToSysEnv(); if(checkConfig) { - //to do check job config + // todo check job config } return new ExecuteCommand(this); } @@ -56,6 +60,27 @@ public class ExecuteCommandArgs extends CommandArgs { + '}'; } + + + private void userParamsToSysEnv() { + if (!this.variables.isEmpty()) { + variables.stream() + .filter(Objects::nonNull) + .map(variable -> variable.split("=", 2)) + .filter(pair -> pair.length == 2) + .forEach(pair -> System.setProperty(pair[0], pair[1])); + } + + if (!this.originalParameters.isEmpty()) { + this.originalParameters.stream() + .filter(Objects::nonNull) + .map(variable -> variable.split("=", 2)) + .filter(pair -> pair.length == 2) + .forEach(pair -> System.setProperty(pair[0].replaceFirst("-D",""), pair[1])); + } + + } + public static class TargetTypeConverter implements IStringConverter<TargetType> { private static final List<TargetType> TARGET_TYPE_LIST = new ArrayList<>(); diff --git a/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/execution/JobRuntimeEnvironment.java b/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/execution/JobRuntimeEnvironment.java index 2090243..e03181b 100644 --- a/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/execution/JobRuntimeEnvironment.java +++ b/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/execution/JobRuntimeEnvironment.java @@ -113,7 +113,7 @@ public class JobRuntimeEnvironment implements RuntimeEnvironment{ } else { environment = StreamExecutionEnvironment.getExecutionEnvironment(configuration); } - configuration.setString(Constants.MAPPING_GROOTSTREAM_UDF, JSON.toJSONString(grootStreamConfig.getUdfMappingConfig())); + configuration.setString(Constants.SYSPROP_UDF_PLUGIN_CONFIG, JSON.toJSONString(grootStreamConfig.getUDFPluginConfig())); configuration.setString(Constants.SYSPROP_GROOTSTREAM_CONFIG, JSON.toJSONString(grootStreamConfig.getEngineConfig())); environment.getConfig().enableObjectReuse(); environment.getConfig().setGlobalJobParameters(configuration); diff --git a/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/main/GrootStreamRunner.java b/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/main/GrootStreamRunner.java index 04bcd58..4cc9ff6 100644 --- a/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/main/GrootStreamRunner.java +++ b/groot-bootstrap/src/main/java/com/geedgenetworks/bootstrap/main/GrootStreamRunner.java @@ -39,7 +39,10 @@ public class GrootStreamRunner { command.add("--target"); command.add(bootstrapCommandArgs.getTargetType().getTarget()); } + + // set flink original parameters command.addAll(bootstrapCommandArgs.getOriginalParameters()); + //set main class name command.add("-c"); command.add(APP_NAME); |
