From 449c098aef3c7881518147d5e32e98aa3f64e1b7 Mon Sep 17 00:00:00 2001 From: kezhenxu94 Date: Fri, 3 Dec 2021 21:06:08 +0800 Subject: [PATCH] Fix quartz not work, worker / alert server should not listen or 8080 port (#7159) --- .../dolphinscheduler/alert/AlertServer.java | 6 +- .../dolphinscheduler/common/Constants.java | 5 -- .../server/master/MasterServer.java | 9 +++ .../server/worker/WorkerServer.java | 2 + .../service/quartz/QuartzExecutors.java | 70 +++++++++---------- install.sh | 4 +- script/dolphinscheduler-daemon.sh | 2 + script/remove-zk-node.sh | 2 + script/scp-hosts.sh | 2 + script/start-all.sh | 3 + script/status-all.sh | 2 + script/stop-all.sh | 2 + 12 files changed, 65 insertions(+), 44 deletions(-) diff --git a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertServer.java b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertServer.java index b3dfa62807..d549ec91cf 100644 --- a/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertServer.java +++ b/dolphinscheduler-alert/dolphinscheduler-alert-server/src/main/java/org/apache/dolphinscheduler/alert/AlertServer.java @@ -38,7 +38,9 @@ import javax.annotation.PreDestroy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; +import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.context.annotation.ComponentScan; @EnableAutoConfiguration @@ -66,7 +68,9 @@ public class AlertServer implements Closeable { } public static void main(String[] args) { - SpringApplication.run(AlertServer.class, args); + new SpringApplicationBuilder(AlertServer.class) + .web(WebApplicationType.NONE) + .run(args); } @PostConstruct diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java index d403572a68..7f97c9c023 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java @@ -453,11 +453,6 @@ public final class Constants { */ public static final String DEFAULT_CRON_STRING = "0 0 0 * * ? *"; - - /** - * data source config - */ - public static final String SPRING_DATASOURCE_DRIVER_CLASS_NAME = "spring.datasource.driver-class-name"; public static final String SPRING_DATASOURCE_URL = "spring.datasource.url"; diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java index 176e796aee..ce0a080a73 100644 --- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java +++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/MasterServer.java @@ -20,6 +20,7 @@ package org.apache.dolphinscheduler.server.master; import org.apache.dolphinscheduler.common.Constants; import org.apache.dolphinscheduler.common.IStoppable; import org.apache.dolphinscheduler.common.thread.Stopper; +import org.apache.dolphinscheduler.common.utils.PropertyUtils; import org.apache.dolphinscheduler.remote.NettyRemotingServer; import org.apache.dolphinscheduler.remote.command.CommandType; import org.apache.dolphinscheduler.remote.config.NettyServerConfig; @@ -43,12 +44,15 @@ import org.quartz.SchedulerException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.WebApplicationType; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.FilterType; import org.springframework.transaction.annotation.EnableTransactionManagement; +import static org.apache.dolphinscheduler.common.Constants.SPRING_DATASOURCE_DRIVER_CLASS_NAME; + /** * master server */ @@ -101,6 +105,9 @@ public class MasterServer implements IStoppable { @Autowired private EventExecuteService eventExecuteService; + @Value("${spring.datasource.driver-class-name}") + private String driverClassName; + private ConcurrentHashMap processInstanceExecMaps = new ConcurrentHashMap<>(); /** @@ -118,6 +125,8 @@ public class MasterServer implements IStoppable { */ @PostConstruct public void run() { + PropertyUtils.setValue(SPRING_DATASOURCE_DRIVER_CLASS_NAME, driverClassName); + // init remoting server NettyServerConfig serverConfig = new NettyServerConfig(); serverConfig.setListenPort(masterConfig.getListenPort()); diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/WorkerServer.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/WorkerServer.java index 64120f3988..0cf8088a88 100644 --- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/WorkerServer.java +++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/worker/WorkerServer.java @@ -35,6 +35,7 @@ import org.apache.dolphinscheduler.service.bean.SpringApplicationContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.WebApplicationType; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.FilterType; @@ -108,6 +109,7 @@ public class WorkerServer implements IStoppable { public static void main(String[] args) { Thread.currentThread().setName(Constants.THREAD_NAME_WORKER_SERVER); new SpringApplicationBuilder(WorkerServer.class) + .web(WebApplicationType.NONE) .profiles("worker") .run(args); } diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/QuartzExecutors.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/QuartzExecutors.java index 9f49dd7939..622206a365 100644 --- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/QuartzExecutors.java +++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/quartz/QuartzExecutors.java @@ -17,6 +17,39 @@ package org.apache.dolphinscheduler.service.quartz; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.concurrent.locks.ReadWriteLock; +import java.util.concurrent.locks.ReentrantReadWriteLock; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.commons.lang.StringUtils; +import org.apache.dolphinscheduler.common.utils.DateUtils; +import org.apache.dolphinscheduler.common.utils.JSONUtils; +import org.apache.dolphinscheduler.common.utils.PropertyUtils; +import org.apache.dolphinscheduler.dao.entity.Schedule; +import org.apache.dolphinscheduler.service.exceptions.ServiceException; +import org.quartz.CronTrigger; +import org.quartz.Job; +import org.quartz.JobDetail; +import org.quartz.JobKey; +import org.quartz.Scheduler; +import org.quartz.SchedulerException; +import org.quartz.TriggerKey; +import org.quartz.impl.StdSchedulerFactory; +import org.quartz.impl.jdbcjobstore.JobStoreTX; +import org.quartz.impl.jdbcjobstore.PostgreSQLDelegate; +import org.quartz.impl.jdbcjobstore.StdJDBCDelegate; +import org.quartz.impl.matchers.GroupMatcher; +import org.quartz.simpl.SimpleThreadPool; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import static org.apache.dolphinscheduler.common.Constants.ORG_POSTGRESQL_DRIVER; import static org.apache.dolphinscheduler.common.Constants.ORG_QUARTZ_DATASOURCE_MYDS_CONNECTIONPROVIDER_CLASS; import static org.apache.dolphinscheduler.common.Constants.ORG_QUARTZ_JOBSTORE_ACQUIRETRIGGERSWITHINLOCK; @@ -54,47 +87,10 @@ import static org.apache.dolphinscheduler.common.Constants.SPRING_DATASOURCE_DRI import static org.apache.dolphinscheduler.common.Constants.STRING_FALSE; import static org.apache.dolphinscheduler.common.Constants.STRING_TRUE; import static org.apache.dolphinscheduler.common.Constants.UNDERLINE; - import static org.quartz.CronScheduleBuilder.cronSchedule; import static org.quartz.JobBuilder.newJob; import static org.quartz.TriggerBuilder.newTrigger; -import org.apache.dolphinscheduler.common.utils.DateUtils; -import org.apache.dolphinscheduler.common.utils.JSONUtils; -import org.apache.dolphinscheduler.common.utils.PropertyUtils; -import org.apache.dolphinscheduler.dao.entity.Schedule; -import org.apache.dolphinscheduler.service.exceptions.ServiceException; - -import org.apache.commons.configuration.Configuration; -import org.apache.commons.configuration.ConfigurationException; -import org.apache.commons.configuration.PropertiesConfiguration; -import org.apache.commons.lang.StringUtils; - -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.concurrent.locks.ReadWriteLock; -import java.util.concurrent.locks.ReentrantReadWriteLock; - -import org.quartz.CronTrigger; -import org.quartz.Job; -import org.quartz.JobDetail; -import org.quartz.JobKey; -import org.quartz.Scheduler; -import org.quartz.SchedulerException; -import org.quartz.TriggerKey; -import org.quartz.impl.StdSchedulerFactory; -import org.quartz.impl.jdbcjobstore.JobStoreTX; -import org.quartz.impl.jdbcjobstore.PostgreSQLDelegate; -import org.quartz.impl.jdbcjobstore.StdJDBCDelegate; -import org.quartz.impl.matchers.GroupMatcher; -import org.quartz.simpl.SimpleThreadPool; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** * single Quartz executors instance */ diff --git a/install.sh b/install.sh index a0cd9e4962..57441e60d1 100755 --- a/install.sh +++ b/install.sh @@ -19,7 +19,9 @@ workDir=`dirname $0` workDir=`cd ${workDir};pwd` +set -a source ${workDir}/conf/config/install_config.conf +set +a # 1.replace file echo "1.replace file" @@ -31,7 +33,7 @@ if [[ "$OSTYPE" == "darwin"* ]]; then fi datasourceDriverClassname="com.mysql.jdbc.Driver" -if [ $dbtype == "postgresql" ];then +if [[ $dbtype == "postgresql" ]];then datasourceDriverClassname="org.postgresql.Driver" fi diff --git a/script/dolphinscheduler-daemon.sh b/script/dolphinscheduler-daemon.sh index 036bfd1070..19f8373311 100755 --- a/script/dolphinscheduler-daemon.sh +++ b/script/dolphinscheduler-daemon.sh @@ -36,8 +36,10 @@ BIN_DIR=`cd "$BIN_DIR"; pwd` DOLPHINSCHEDULER_HOME=`cd "$BIN_DIR/.."; pwd` source /etc/profile +set -a source "${DOLPHINSCHEDULER_HOME}/conf/env/dolphinscheduler_env.sh" source "${DOLPHINSCHEDULER_HOME}/conf/config/install_config.conf" +set +a export HOSTNAME=`hostname` diff --git a/script/remove-zk-node.sh b/script/remove-zk-node.sh index 2cb8a2b284..d6a2171c38 100755 --- a/script/remove-zk-node.sh +++ b/script/remove-zk-node.sh @@ -31,8 +31,10 @@ BIN_DIR=`dirname $0` BIN_DIR=`cd "$BIN_DIR"; pwd` DOLPHINSCHEDULER_HOME=$BIN_DIR/.. +set -a source ${BIN_DIR}/../conf/config/install_config.conf source ${BIN_DIR}/../conf/env/dolphinscheduler_env.sh +set +a export JAVA_HOME=$JAVA_HOME diff --git a/script/scp-hosts.sh b/script/scp-hosts.sh index da084468a6..161436c0ee 100755 --- a/script/scp-hosts.sh +++ b/script/scp-hosts.sh @@ -18,7 +18,9 @@ workDir=`dirname $0` workDir=`cd ${workDir};pwd` +set -a source $workDir/../conf/config/install_config.conf +set +a txt="" if [[ "$OSTYPE" == "darwin"* ]]; then diff --git a/script/start-all.sh b/script/start-all.sh index d0c0ab8188..b024d6ca38 100755 --- a/script/start-all.sh +++ b/script/start-all.sh @@ -18,7 +18,10 @@ workDir=`dirname $0` workDir=`cd ${workDir};pwd` + +set -a source $workDir/../conf/config/install_config.conf +set +a declare -A workersGroupMap=() diff --git a/script/status-all.sh b/script/status-all.sh index 555a2c1ead..24cdb7537b 100755 --- a/script/status-all.sh +++ b/script/status-all.sh @@ -18,7 +18,9 @@ workDir=`dirname $0` workDir=`cd ${workDir};pwd` +set -a source $workDir/../conf/config/install_config.conf +set +a # install_config.conf info echo -e '\n' diff --git a/script/stop-all.sh b/script/stop-all.sh index 20175e9a51..884f1d93bc 100755 --- a/script/stop-all.sh +++ b/script/stop-all.sh @@ -19,7 +19,9 @@ workDir=`dirname $0` workDir=`cd ${workDir};pwd` +set -a source $workDir/../conf/config/install_config.conf +set +a declare -A workersGroupMap=()