This is an automated email from the ASF dual-hosted git repository.
chenxingchun pushed a commit to branch 1.3.6-prepare
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git
The following commit(s) were added to refs/heads/1.3.6-prepare by this push:
new 405d62f [1.3.6-prepare][Improvement][Docker/K8s] Improve feedback
(#5195)
405d62f is described below
commit 405d62f4b9d40d2135526201b8ebf18c89f57bf1
Author: Shiwen Cheng <[email protected]>
AuthorDate: Fri Apr 2 13:39:53 2021 +0800
[1.3.6-prepare][Improvement][Docker/K8s] Improve feedback (#5195)
* [1.3.6-prepare][Config] Revise configuration comments
* [1.3.6-prepare][Improvement][K8s] Optimize long host to short host
* [1.3.6-prepare][Improvement][Docker] Remove docker restriction in worker
group
* [1.3.6-prepare][UI] Improve long host display in k8s
* [1.3.6-prepare][Server] Optimize log display
* [1.3.6-prepare][K8s] Fix the problem that DATA_BASEDIR_PATH,
RESOURCE_STORAGE_TYPE, and RESOURCE_UPLOAD_PATH are not set and cannot be
deployed
* [1.3.6-prepare][K8s] Fix the wrong memory and always
Runtime.getRuntime().availableProcessors()=1 in docker/k8s
---
.../DOLPHIN/1.3.6/configuration/dolphin-master.xml | 14 ++---
.../DOLPHIN/1.3.6/configuration/dolphin-worker.xml | 8 +--
.../conf/dolphinscheduler/master.properties.tpl | 14 ++---
.../conf/dolphinscheduler/worker.properties.tpl | 8 +--
.../dolphinscheduler/templates/_helpers.tpl | 4 +-
.../templates/secret-external-fs-s3a.yaml | 2 +-
.../statefulset-dolphinscheduler-worker.yaml | 2 +-
.../dolphinscheduler/api/ApiApplicationServer.java | 9 ++--
.../api/service/WorkerGroupService.java | 8 ---
.../apache/dolphinscheduler/common/Constants.java | 11 ----
.../dolphinscheduler/common/utils/NetUtils.java | 3 ++
.../dolphinscheduler/common/utils/OSUtils.java | 63 ++++++----------------
.../common/utils/NetUtilsTest.java | 2 +-
.../dolphinscheduler/common/utils/OSUtilsTest.java | 28 ----------
.../master/consumer/TaskPriorityQueueConsumer.java | 2 +-
.../server/master/dispatch/ExecutorDispatcher.java | 9 ++--
.../dispatch/host/LowerWeightHostManager.java | 4 +-
.../server/registry/HeartBeatTask.java | 10 ++--
.../src/main/resources/master.properties | 14 ++---
.../src/main/resources/worker.properties | 8 +--
.../pages/instance/pages/list/_source/list.vue | 4 +-
.../projects/pages/taskInstance/_source/list.vue | 4 +-
.../pages/workerGroups/_source/createWorker.vue | 3 +-
pom.xml | 2 +-
script/dolphinscheduler-daemon.sh | 2 +-
tools/dependencies/known-dependencies.txt | 3 +-
26 files changed, 81 insertions(+), 160 deletions(-)
diff --git
a/ambari_plugin/common-services/DOLPHIN/1.3.6/configuration/dolphin-master.xml
b/ambari_plugin/common-services/DOLPHIN/1.3.6/configuration/dolphin-master.xml
index 472c5e3..e7b2df2 100644
---
a/ambari_plugin/common-services/DOLPHIN/1.3.6/configuration/dolphin-master.xml
+++
b/ambari_plugin/common-services/DOLPHIN/1.3.6/configuration/dolphin-master.xml
@@ -30,7 +30,7 @@
<value-attributes>
<type>int</type>
</value-attributes>
- <description>master execute thread number</description>
+ <description>master execute thread number to limit process
instances</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
@@ -39,7 +39,7 @@
<value-attributes>
<type>int</type>
</value-attributes>
- <description>master execute task number in
parallel</description>
+ <description>master execute task number in parallel per process
instance</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
@@ -48,7 +48,7 @@
<value-attributes>
<type>int</type>
</value-attributes>
- <description>master dispatch task number</description>
+ <description>master dispatch task number per batch</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
@@ -63,7 +63,7 @@
<value-attributes>
<type>int</type>
</value-attributes>
- <description>master heartbeat interval</description>
+ <description>master heartbeat interval, the unit is
second</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
@@ -81,7 +81,7 @@
<value-attributes>
<type>int</type>
</value-attributes>
- <description>master commit task interval</description>
+ <description>master commit task interval, the unit is
millisecond</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
@@ -90,13 +90,13 @@
<value-attributes>
<type>int</type>
</value-attributes>
- <description>only less than cpu avg load, master server can
work. default value -1: the number of cpu cores * 2</description>
+ <description>master max cpuload avg, only higher than the
system cpu load average, master server can schedule. default value -1: the
number of cpu cores * 2</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>master.reserved.memory</name>
<value>0.3</value>
- <description>only larger than reserved memory, master server
can work. default value 0.3, the unit is G</description>
+ <description>master reserved memory, only lower than system
available memory, master server can schedule. default value 0.3, the unit is
G</description>
<on-ambari-upgrade add="true"/>
</property>
</configuration>
\ No newline at end of file
diff --git
a/ambari_plugin/common-services/DOLPHIN/1.3.6/configuration/dolphin-worker.xml
b/ambari_plugin/common-services/DOLPHIN/1.3.6/configuration/dolphin-worker.xml
index ced9aab..cd16f83 100644
---
a/ambari_plugin/common-services/DOLPHIN/1.3.6/configuration/dolphin-worker.xml
+++
b/ambari_plugin/common-services/DOLPHIN/1.3.6/configuration/dolphin-worker.xml
@@ -30,7 +30,7 @@
<value-attributes>
<type>int</type>
</value-attributes>
- <description>worker execute thread number</description>
+ <description>worker execute thread number to limit task
instances</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
@@ -39,7 +39,7 @@
<value-attributes>
<type>int</type>
</value-attributes>
- <description>worker heartbeat interval</description>
+ <description>worker heartbeat interval, the unit is
second</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
@@ -48,13 +48,13 @@
<value-attributes>
<type>int</type>
</value-attributes>
- <description>only less than cpu avg load, worker server can
work. default value -1: the number of cpu cores * 2</description>
+ <description>worker max cpuload avg, only higher than the
system cpu load average, worker server can be dispatched tasks. default value
-1: the number of cpu cores * 2</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
<name>worker.reserved.memory</name>
<value>0.3</value>
- <description>only larger than reserved memory, worker server
can work. default value 0.3, the unit is G</description>
+ <description>worker reserved memory, only lower than system
available memory, worker server can be dispatched tasks. default value 0.3, the
unit is G</description>
<on-ambari-upgrade add="true"/>
</property>
<property>
diff --git a/docker/build/conf/dolphinscheduler/master.properties.tpl
b/docker/build/conf/dolphinscheduler/master.properties.tpl
index 151117a..3c79c01 100644
--- a/docker/build/conf/dolphinscheduler/master.properties.tpl
+++ b/docker/build/conf/dolphinscheduler/master.properties.tpl
@@ -18,29 +18,29 @@
# master listen port
#master.listen.port=5678
-# master execute thread number
+# master execute thread number to limit process instances
master.exec.threads=${MASTER_EXEC_THREADS}
-# master execute task number in parallel
+# master execute task number in parallel per process instance
master.exec.task.num=${MASTER_EXEC_TASK_NUM}
-# master dispatch task number
+# master dispatch task number per batch
master.dispatch.task.num=${MASTER_DISPATCH_TASK_NUM}
# master host selector to select a suitable worker, default value:
LowerWeight. Optional values include Random, RoundRobin, LowerWeight
master.host.selector=${MASTER_HOST_SELECTOR}
-# master heartbeat interval
+# master heartbeat interval, the unit is second
master.heartbeat.interval=${MASTER_HEARTBEAT_INTERVAL}
# master commit task retry times
master.task.commit.retryTimes=${MASTER_TASK_COMMIT_RETRYTIMES}
-# master commit task interval
+# master commit task interval, the unit is millisecond
master.task.commit.interval=${MASTER_TASK_COMMIT_INTERVAL}
-# only less than cpu avg load, master server can work. default value -1: the
number of cpu cores * 2
+# master max cpuload avg, only higher than the system cpu load average, master
server can schedule. default value -1: the number of cpu cores * 2
master.max.cpuload.avg=${MASTER_MAX_CPULOAD_AVG}
-# only larger than reserved memory, master server can work. default value 0.3,
the unit is G
+# master reserved memory, only lower than system available memory, master
server can schedule. default value 0.3, the unit is G
master.reserved.memory=${MASTER_RESERVED_MEMORY}
diff --git a/docker/build/conf/dolphinscheduler/worker.properties.tpl
b/docker/build/conf/dolphinscheduler/worker.properties.tpl
index b021cbf..7d266d7 100644
--- a/docker/build/conf/dolphinscheduler/worker.properties.tpl
+++ b/docker/build/conf/dolphinscheduler/worker.properties.tpl
@@ -18,16 +18,16 @@
# worker listener port
#worker.listen.port=1234
-# worker execute thread number
+# worker execute thread number to limit task instances
worker.exec.threads=${WORKER_EXEC_THREADS}
-# worker heartbeat interval
+# worker heartbeat interval, the unit is second
worker.heartbeat.interval=${WORKER_HEARTBEAT_INTERVAL}
-# only less than cpu avg load, worker server can work. default value -1: the
number of cpu cores * 2
+# worker max cpuload avg, only higher than the system cpu load average, worker
server can be dispatched tasks. default value -1: the number of cpu cores * 2
worker.max.cpuload.avg=${WORKER_MAX_CPULOAD_AVG}
-# only larger than reserved memory, worker server can work. default value 0.3,
the unit is G
+# worker reserved memory, only lower than system available memory, worker
server can be dispatched tasks. default value 0.3, the unit is G
worker.reserved.memory=${WORKER_RESERVED_MEMORY}
# default worker groups separated by comma, like 'worker.groups=default,test'
diff --git a/docker/kubernetes/dolphinscheduler/templates/_helpers.tpl
b/docker/kubernetes/dolphinscheduler/templates/_helpers.tpl
index 3f6a0f5..ff6fa21 100644
--- a/docker/kubernetes/dolphinscheduler/templates/_helpers.tpl
+++ b/docker/kubernetes/dolphinscheduler/templates/_helpers.tpl
@@ -184,7 +184,7 @@ Create a zookeeper environment variables.
Create a common fs_s3a environment variables.
*/}}
{{- define "dolphinscheduler.fs_s3a.env_vars" -}}
-{{- if eq .Values.common.configmap.RESOURCE_STORAGE_TYPE "S3" -}}
+{{- if eq (default "HDFS" .Values.common.configmap.RESOURCE_STORAGE_TYPE) "S3"
-}}
- name: FS_S3A_SECRET_KEY
valueFrom:
secretKeyRef:
@@ -230,7 +230,7 @@ Create a fsFileResourcePersistence volumeMount.
*/}}
{{- define "dolphinscheduler.fsFileResource.volumeMount" -}}
{{- if .Values.common.fsFileResourcePersistence.enabled -}}
-- mountPath: {{ .Values.common.configmap.RESOURCE_UPLOAD_PATH | quote }}
+- mountPath: {{ default "/dolphinscheduler"
.Values.common.configmap.RESOURCE_UPLOAD_PATH | quote }}
name: {{ include "dolphinscheduler.fullname" . }}-fs-file
{{- end -}}
{{- end -}}
\ No newline at end of file
diff --git
a/docker/kubernetes/dolphinscheduler/templates/secret-external-fs-s3a.yaml
b/docker/kubernetes/dolphinscheduler/templates/secret-external-fs-s3a.yaml
index d84dee9..5ba2c50 100644
--- a/docker/kubernetes/dolphinscheduler/templates/secret-external-fs-s3a.yaml
+++ b/docker/kubernetes/dolphinscheduler/templates/secret-external-fs-s3a.yaml
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-{{- if eq .Values.common.configmap.RESOURCE_STORAGE_TYPE "S3" }}
+{{- if eq (default "HDFS" .Values.common.configmap.RESOURCE_STORAGE_TYPE) "S3"
}}
apiVersion: v1
kind: Secret
metadata:
diff --git
a/docker/kubernetes/dolphinscheduler/templates/statefulset-dolphinscheduler-worker.yaml
b/docker/kubernetes/dolphinscheduler/templates/statefulset-dolphinscheduler-worker.yaml
index 76cc18f..ffb9291 100644
---
a/docker/kubernetes/dolphinscheduler/templates/statefulset-dolphinscheduler-worker.yaml
+++
b/docker/kubernetes/dolphinscheduler/templates/statefulset-dolphinscheduler-worker.yaml
@@ -101,7 +101,7 @@ spec:
failureThreshold: {{
.Values.worker.readinessProbe.failureThreshold }}
{{- end }}
volumeMounts:
- - mountPath: {{ .Values.common.configmap.DATA_BASEDIR_PATH | quote
}}
+ - mountPath: {{ default "/tmp/dolphinscheduler"
.Values.common.configmap.DATA_BASEDIR_PATH | quote }}
name: {{ include "dolphinscheduler.fullname" . }}-worker-data
- mountPath: "/opt/dolphinscheduler/logs"
name: {{ include "dolphinscheduler.fullname" . }}-worker-logs
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/ApiApplicationServer.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/ApiApplicationServer.java
index e4817dd..b4d45b4 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/ApiApplicationServer.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/ApiApplicationServer.java
@@ -14,6 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.apache.dolphinscheduler.api;
import org.springframework.boot.SpringApplication;
@@ -22,19 +23,15 @@ import
org.springframework.boot.web.servlet.ServletComponentScan;
import
org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.FilterType;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
@SpringBootApplication
@ServletComponentScan
-@ComponentScan(basePackages = {"org.apache.dolphinscheduler"},
- excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX,
- pattern = "org.apache.dolphinscheduler.server.*"))
-
+@ComponentScan(value = "org.apache.dolphinscheduler",
+ excludeFilters = @ComponentScan.Filter(type = FilterType.REGEX,
pattern = "org.apache.dolphinscheduler.server.*"))
public class ApiApplicationServer extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(ApiApplicationServer.class, args);
}
-
}
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkerGroupService.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkerGroupService.java
index 89fa7b1..d2c8b40 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkerGroupService.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/WorkerGroupService.java
@@ -78,10 +78,6 @@ public class WorkerGroupService extends BaseService {
if (checkAdmin(loginUser, result)) {
return result;
}
- if (Constants.DOCKER_MODE && !Constants.KUBERNETES_MODE) {
- putMsg(result, Status.CREATE_WORKER_GROUP_FORBIDDEN_IN_DOCKER);
- return result;
- }
if (StringUtils.isEmpty(name)) {
putMsg(result, Status.NAME_NULL);
return result;
@@ -297,10 +293,6 @@ public class WorkerGroupService extends BaseService {
if (checkAdmin(loginUser, result)) {
return result;
}
- if (Constants.DOCKER_MODE && !Constants.KUBERNETES_MODE) {
- putMsg(result, Status.DELETE_WORKER_GROUP_FORBIDDEN_IN_DOCKER);
- return result;
- }
WorkerGroup workerGroup = workerGroupMapper.selectById(id);
if (workerGroup == null) {
putMsg(result, Status.DELETE_WORKER_GROUP_NOT_EXIST);
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 ec57ef0..fe83fa1 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
@@ -368,21 +368,10 @@ public final class Constants {
public static final int DEFAULT_MASTER_CPU_LOAD =
Runtime.getRuntime().availableProcessors() * 2;
/**
- * master reserved memory
- */
- public static final double DEFAULT_MASTER_RESERVED_MEMORY =
OSUtils.totalMemorySize() / 10;
-
- /**
* worker cpu load
*/
public static final int DEFAULT_WORKER_CPU_LOAD =
Runtime.getRuntime().availableProcessors() * 2;
- /**
- * worker reserved memory
- */
- public static final double DEFAULT_WORKER_RESERVED_MEMORY =
OSUtils.totalMemorySize() / 10;
-
-
/**
* default log cache rows num,output when reach the number
diff --git
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java
index 8a283c7..4314089 100644
---
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java
+++
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/NetUtils.java
@@ -86,6 +86,9 @@ public class NetUtils {
if (STS_PATTERN.matcher(host).find()) {
return String.format("%s.%s", host,
host.replaceFirst("\\d+$", "headless"));
}
+ } else if (canonicalHost.contains(".")) {
+ String[] items = canonicalHost.split("\\.");
+ return String.format("%s.%s", items[0], items[1]);
}
return canonicalHost;
}
diff --git
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java
index e40a226..e5612c3 100644
---
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java
+++
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java
@@ -16,11 +16,8 @@
*/
package org.apache.dolphinscheduler.common.utils;
-import org.apache.dolphinscheduler.common.Constants;
import org.apache.dolphinscheduler.common.shell.ShellExecutor;
-import org.apache.commons.configuration.Configuration;
-
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
@@ -56,23 +53,19 @@ public class OSUtils {
public static final ThreadLocal<Logger> taskLoggerThreadLocal = new
ThreadLocal<>();
- private static final Pattern STS_PATTERN = Pattern.compile("-\\d+$"); //
StatefulSet pattern
- private static final Pattern IP_PATTERN =
Pattern.compile("\\d{1,3}(\\.\\d{1,3}){3,5}$");
-
private static final SystemInfo SI = new SystemInfo();
public static final String TWO_DECIMAL = "0.00";
- /**
- * return -1 when the function can not get hardware env info
- * e.g {@link OSUtils#loadAverage()} {@link OSUtils#cpuUsage()}
- */
- public static final double NEGATIVE_ONE = -1;
+ /**
+ * return -1 when the function can not get hardware env info
+ * e.g {@link OSUtils#loadAverage()} {@link OSUtils#cpuUsage()}
+ */
+ public static final double NEGATIVE_ONE = -1;
private static HardwareAbstractionLayer hal = SI.getHardware();
private OSUtils() {}
-
/**
* get memory usage
* Keep 2 decimal
@@ -80,14 +73,13 @@ public class OSUtils {
*/
public static double memoryUsage() {
GlobalMemory memory = hal.getMemory();
- double memoryUsage = (memory.getTotal() - memory.getAvailable() -
memory.getSwapUsed()) * 0.1 / memory.getTotal() * 10;
+ double memoryUsage = (memory.getTotal() - memory.getAvailable()) * 1.0 /
memory.getTotal();
DecimalFormat df = new DecimalFormat(TWO_DECIMAL);
df.setRoundingMode(RoundingMode.HALF_UP);
return Double.parseDouble(df.format(memoryUsage));
}
-
/**
* get available physical memory size
*
@@ -96,12 +88,11 @@ public class OSUtils {
*/
public static double availablePhysicalMemorySize() {
GlobalMemory memory = hal.getMemory();
- double availablePhysicalMemorySize = (memory.getAvailable() +
memory.getSwapUsed()) /1024.0/1024/1024;
+ double availablePhysicalMemorySize = memory.getAvailable() / 1024.0 /
1024 / 1024;
DecimalFormat df = new DecimalFormat(TWO_DECIMAL);
df.setRoundingMode(RoundingMode.HALF_UP);
return Double.parseDouble(df.format(availablePhysicalMemorySize));
-
}
/**
@@ -112,14 +103,13 @@ public class OSUtils {
*/
public static double totalMemorySize() {
GlobalMemory memory = hal.getMemory();
- double availablePhysicalMemorySize = memory.getTotal() /1024.0/1024/1024;
+ double totalPhysicalMemorySize = memory.getTotal() / 1024.0 / 1024 / 1024;
DecimalFormat df = new DecimalFormat(TWO_DECIMAL);
df.setRoundingMode(RoundingMode.HALF_UP);
- return Double.parseDouble(df.format(availablePhysicalMemorySize));
+ return Double.parseDouble(df.format(totalPhysicalMemorySize));
}
-
/**
* load average
*
@@ -421,7 +411,6 @@ public class OSUtils {
return getOSName().startsWith("Mac");
}
-
/**
* whether is windows
* @return true if windows
@@ -440,42 +429,22 @@ public class OSUtils {
/**
* check memory and cpu usage
- * @param systemCpuLoad systemCpuLoad
- * @param systemReservedMemory systemReservedMemory
+ * @param maxCpuloadAvg maxCpuloadAvg
+ * @param reservedMemory reservedMemory
* @return check memory and cpu usage
*/
- public static Boolean checkResource(double systemCpuLoad, double
systemReservedMemory){
+ public static Boolean checkResource(double maxCpuloadAvg, double
reservedMemory) {
// system load average
double loadAverage = OSUtils.loadAverage();
// system available physical memory
double availablePhysicalMemorySize = OSUtils.availablePhysicalMemorySize();
-
- if(loadAverage > systemCpuLoad || availablePhysicalMemorySize <
systemReservedMemory){
- logger.warn("load is too high or availablePhysicalMemorySize(G) is too
low, it's availablePhysicalMemorySize(G):{},loadAvg:{}",
availablePhysicalMemorySize , loadAverage);
+ if (loadAverage > maxCpuloadAvg || availablePhysicalMemorySize <
reservedMemory) {
+ logger.warn("current cpu load average {} is too high or available memory
{}G is too low, under max.cpuload.avg={} and reserved.memory={}G",
+ loadAverage, availablePhysicalMemorySize, maxCpuloadAvg,
reservedMemory);
return false;
- }else{
+ } else {
return true;
}
}
- /**
- * check memory and cpu usage
- * @param conf conf
- * @param isMaster is master
- * @return check memory and cpu usage
- */
- public static Boolean checkResource(Configuration conf, Boolean isMaster){
- double systemCpuLoad;
- double systemReservedMemory;
-
- if(Boolean.TRUE.equals(isMaster)){
- systemCpuLoad = conf.getDouble(Constants.MASTER_MAX_CPULOAD_AVG,
Constants.DEFAULT_MASTER_CPU_LOAD);
- systemReservedMemory = conf.getDouble(Constants.MASTER_RESERVED_MEMORY,
Constants.DEFAULT_MASTER_RESERVED_MEMORY);
- }else{
- systemCpuLoad = conf.getDouble(Constants.WORKER_MAX_CPULOAD_AVG,
Constants.DEFAULT_WORKER_CPU_LOAD);
- systemReservedMemory = conf.getDouble(Constants.WORKER_RESERVED_MEMORY,
Constants.DEFAULT_WORKER_RESERVED_MEMORY);
- }
- return checkResource(systemCpuLoad,systemReservedMemory);
- }
-
}
diff --git
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/NetUtilsTest.java
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/NetUtilsTest.java
index 23bdc7a..34d4451 100644
---
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/NetUtilsTest.java
+++
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/NetUtilsTest.java
@@ -51,7 +51,7 @@ public class NetUtilsTest {
when(address.getHostAddress()).thenReturn("172.17.0.15");
assertEquals("172.17.0.15", NetUtils.getHost(address));
CommonTest.setFinalStatic(Constants.class.getDeclaredField("KUBERNETES_MODE"),
true);
-
assertEquals("dolphinscheduler-worker-0.dolphinscheduler-worker-headless.default.svc.cluster.local",
NetUtils.getHost(address));
+
assertEquals("dolphinscheduler-worker-0.dolphinscheduler-worker-headless",
NetUtils.getHost(address));
address = mock(InetAddress.class);
when(address.getCanonicalHostName()).thenReturn("dolphinscheduler-worker-0");
when(address.getHostName()).thenReturn("dolphinscheduler-worker-0");
diff --git
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/OSUtilsTest.java
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/OSUtilsTest.java
index 9a6cf0d..28d589e 100644
---
a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/OSUtilsTest.java
+++
b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/OSUtilsTest.java
@@ -16,11 +16,6 @@
*/
package org.apache.dolphinscheduler.common.utils;
-import org.apache.dolphinscheduler.common.Constants;
-
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.PropertiesConfiguration;
-
import java.io.IOException;
import java.util.List;
@@ -95,29 +90,6 @@ public class OSUtilsTest {
Assert.assertTrue(resource);
resource = OSUtils.checkResource(0,Double.MAX_VALUE);
Assert.assertFalse(resource);
-
- Configuration configuration = new PropertiesConfiguration();
-
- configuration.setProperty(Constants.MASTER_MAX_CPULOAD_AVG,100);
- configuration.setProperty(Constants.MASTER_RESERVED_MEMORY,0);
- resource = OSUtils.checkResource(configuration,true);
- Assert.assertTrue(resource);
-
- configuration.setProperty(Constants.MASTER_MAX_CPULOAD_AVG,0);
-
configuration.setProperty(Constants.MASTER_RESERVED_MEMORY,Double.MAX_VALUE);
- resource = OSUtils.checkResource(configuration,true);
- Assert.assertFalse(resource);
-
- configuration.setProperty(Constants.WORKER_MAX_CPULOAD_AVG,100);
- configuration.setProperty(Constants.WORKER_RESERVED_MEMORY,0);
- resource = OSUtils.checkResource(configuration,false);
- Assert.assertTrue(resource);
-
- configuration.setProperty(Constants.WORKER_MAX_CPULOAD_AVG,0);
-
configuration.setProperty(Constants.WORKER_RESERVED_MEMORY,Double.MAX_VALUE);
- resource = OSUtils.checkResource(configuration,false);
- Assert.assertFalse(resource);
-
}
}
diff --git
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/consumer/TaskPriorityQueueConsumer.java
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/consumer/TaskPriorityQueueConsumer.java
index b192014..454aec4 100644
---
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/consumer/TaskPriorityQueueConsumer.java
+++
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/consumer/TaskPriorityQueueConsumer.java
@@ -151,7 +151,7 @@ public class TaskPriorityQueueConsumer extends Thread{
result = dispatcher.dispatch(executionContext);
}
} catch (ExecuteException e) {
- logger.error("dispatch error",e);
+ logger.error("dispatch error: {}",e.getMessage());
}
return result;
}
diff --git
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/dispatch/ExecutorDispatcher.java
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/dispatch/ExecutorDispatcher.java
index 34c8c8e..475c5b9 100644
---
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/dispatch/ExecutorDispatcher.java
+++
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/dispatch/ExecutorDispatcher.java
@@ -26,12 +26,13 @@ import
org.apache.dolphinscheduler.server.master.dispatch.exceptions.ExecuteExce
import
org.apache.dolphinscheduler.server.master.dispatch.executor.ExecutorManager;
import
org.apache.dolphinscheduler.server.master.dispatch.executor.NettyExecutorManager;
import org.apache.dolphinscheduler.server.master.dispatch.host.HostManager;
+
+import java.util.concurrent.ConcurrentHashMap;
+
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import java.util.concurrent.ConcurrentHashMap;
-
/**
* executor dispatcher
*/
@@ -84,8 +85,8 @@ public class ExecutorDispatcher implements InitializingBean {
Host host = hostManager.select(context);
if (StringUtils.isEmpty(host.getAddress())) {
- throw new ExecuteException(String.format("fail to execute : %s due
to no suitable worker , " +
- "current task need to %s worker group execute",
+ throw new ExecuteException(String.format("fail to execute : %s due
to no suitable worker, "
+ + "current task needs worker group %s to execute",
context.getCommand(),context.getWorkerGroup()));
}
context.setHost(host);
diff --git
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/dispatch/host/LowerWeightHostManager.java
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/dispatch/host/LowerWeightHostManager.java
index 181cb98..2cce334 100644
---
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/dispatch/host/LowerWeightHostManager.java
+++
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/dispatch/host/LowerWeightHostManager.java
@@ -156,8 +156,8 @@ public class LowerWeightHostManager extends
CommonHostManager {
String[] parts = heartbeat.split(Constants.COMMA);
int status = Integer.parseInt(parts[8]);
if (status == Constants.ABNORMAL_NODE_STATUS) {
- logger.warn("load is too high or
availablePhysicalMemorySize(G) is too low, it's
availablePhysicalMemorySize(G):{},loadAvg:{}",
- Double.parseDouble(parts[3]),
Double.parseDouble(parts[2]));
+ logger.warn("worker {} current cpu load average {} is too
high or available memory {}G is too low",
+ addr, Double.parseDouble(parts[2]),
Double.parseDouble(parts[3]));
return null;
}
double cpu = Double.parseDouble(parts[0]);
diff --git
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/registry/HeartBeatTask.java
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/registry/HeartBeatTask.java
index dcabd03..c7e1edd 100644
---
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/registry/HeartBeatTask.java
+++
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/registry/HeartBeatTask.java
@@ -73,14 +73,12 @@ public class HeartBeatTask implements Runnable {
}
}
- double availablePhysicalMemorySize =
OSUtils.availablePhysicalMemorySize();
double loadAverage = OSUtils.loadAverage();
-
+ double availablePhysicalMemorySize =
OSUtils.availablePhysicalMemorySize();
int status = Constants.NORAML_NODE_STATUS;
-
- if (availablePhysicalMemorySize < reservedMemory
- || loadAverage > maxCpuloadAvg) {
- logger.warn("load is too high or
availablePhysicalMemorySize(G) is too low, it's
availablePhysicalMemorySize(G):{},loadAvg:{}", availablePhysicalMemorySize,
loadAverage);
+ if (loadAverage > maxCpuloadAvg || availablePhysicalMemorySize <
reservedMemory) {
+ logger.warn("current cpu load average {} is too high or
available memory {}G is too low, under max.cpuload.avg={} and
reserved.memory={}G",
+ loadAverage, availablePhysicalMemorySize,
maxCpuloadAvg, reservedMemory);
status = Constants.ABNORMAL_NODE_STATUS;
}
diff --git a/dolphinscheduler-server/src/main/resources/master.properties
b/dolphinscheduler-server/src/main/resources/master.properties
index 3edc481..3363d1f 100644
--- a/dolphinscheduler-server/src/main/resources/master.properties
+++ b/dolphinscheduler-server/src/main/resources/master.properties
@@ -18,29 +18,29 @@
# master listen port
#master.listen.port=5678
-# master execute thread number
+# master execute thread number to limit process instances
#master.exec.threads=100
-# master execute task number in parallel
+# master execute task number in parallel per process instance
#master.exec.task.num=20
-# master dispatch task number
+# master dispatch task number per batch
#master.dispatch.task.num=3
# master host selector to select a suitable worker, default value:
LowerWeight. Optional values include Random, RoundRobin, LowerWeight
#master.host.selector=LowerWeight
-# master heartbeat interval
+# master heartbeat interval, the unit is second
#master.heartbeat.interval=10
# master commit task retry times
#master.task.commit.retryTimes=5
-# master commit task interval
+# master commit task interval, the unit is millisecond
#master.task.commit.interval=1000
-# only less than cpu avg load, master server can work. default value -1: the
number of cpu cores * 2
+# master max cpuload avg, only higher than the system cpu load average, master
server can schedule. default value -1: the number of cpu cores * 2
#master.max.cpuload.avg=-1
-# only larger than reserved memory, master server can work. default value 0.3,
the unit is G
+# master reserved memory, only lower than system available memory, master
server can schedule. default value 0.3, the unit is G
#master.reserved.memory=0.3
diff --git a/dolphinscheduler-server/src/main/resources/worker.properties
b/dolphinscheduler-server/src/main/resources/worker.properties
index dc61097..c19f439 100644
--- a/dolphinscheduler-server/src/main/resources/worker.properties
+++ b/dolphinscheduler-server/src/main/resources/worker.properties
@@ -18,16 +18,16 @@
# worker listener port
#worker.listen.port=1234
-# worker execute thread number
+# worker execute thread number to limit task instances
#worker.exec.threads=100
-# worker heartbeat interval
+# worker heartbeat interval, the unit is second
#worker.heartbeat.interval=10
-# only less than cpu avg load, worker server can work. default value -1: the
number of cpu cores * 2
+# worker max cpuload avg, only higher than the system cpu load average, worker
server can be dispatched tasks. default value -1: the number of cpu cores * 2
#worker.max.cpuload.avg=-1
-# only larger than reserved memory, worker server can work. default value 0.3,
the unit is G
+# worker reserved memory, only lower than system available memory, worker
server can be dispatched tasks. default value 0.3, the unit is G
#worker.reserved.memory=0.3
# default worker groups separated by comma, like 'worker.groups=default,test'
diff --git
a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue
b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue
index dbfd1aa..3dab95e 100644
---
a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue
+++
b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/instance/pages/list/_source/list.vue
@@ -55,7 +55,7 @@
<th scope="col" style="min-width: 135px">
<span>{{$t('Executor')}}</span>
</th>
- <th scope="col" style="max-width: 600px">
+ <th scope="col" style="min-width: 490px">
<span>{{$t('host')}}</span>
</th>
<th scope="col" style="min-width: 230px">
@@ -93,7 +93,7 @@
<span v-if="item.executorName">{{item.executorName}}</span>
<span v-else>-</span>
</td>
- <td style="max-width: 600px"><span style="padding-right:
5px">{{item.host || '-'}}</span></td>
+ <td style="min-width: 490px"><span style="padding-right:
10px">{{item.host || '-'}}</span></td>
<td style="z-index: inherit;">
<div v-show="item.disabled">
<x-button type="info"
diff --git
a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue
b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue
index 5ba1ae9..60dd068 100644
---
a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue
+++
b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskInstance/_source/list.vue
@@ -46,7 +46,7 @@
<th scope="col" style="min-width: 130px">
<span>{{$t('End Time')}}</span>
</th>
- <th scope="col" style="max-width: 600px">
+ <th scope="col" style="min-width: 250px">
<span>{{$t('host')}}</span>
</th>
<th scope="col" style="min-width: 70px">
@@ -87,7 +87,7 @@
<span v-if="item.endTime">{{item.endTime | formatDate}}</span>
<span v-else>-</span>
</td>
- <td style="max-width: 600px"><span style="padding-right:
5px">{{item.host || '-'}}</span></td>
+ <td style="min-width: 250px"><span style="padding-right:
10px">{{item.host || '-'}}</span></td>
<td><span>{{item.duration || '-'}}</span></td>
<td><span>{{item.retryTimes}}</span></td>
<td>
diff --git
a/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/createWorker.vue
b/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/createWorker.vue
index f594d96..f1b2b04 100644
---
a/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/createWorker.vue
+++
b/dolphinscheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/createWorker.vue
@@ -19,7 +19,8 @@
ref="popup"
:ok-text="item ? $t('Edit') : $t('Submit')"
:nameText="item ? $t('Edit worker group') : $t('Create worker
group')"
- @ok="_ok">
+ @ok="_ok"
+ style="width: 700px;">
<template slot="content">
<div class="create-worker-model">
<m-list-box-f>
diff --git a/pom.xml b/pom.xml
index 1a522fa..6b8fe3d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -91,7 +91,7 @@
<postgresql.version>42.1.4</postgresql.version>
<hive.jdbc.version>2.1.0</hive.jdbc.version>
<commons.io.version>2.4</commons.io.version>
- <oshi.core.version>3.5.0</oshi.core.version>
+ <oshi.core.version>3.9.1</oshi.core.version>
<clickhouse.jdbc.version>0.1.52</clickhouse.jdbc.version>
<mssql.jdbc.version>6.1.0.jre8</mssql.jdbc.version>
<jsp-2.1.version>6.1.14</jsp-2.1.version>
diff --git a/script/dolphinscheduler-daemon.sh
b/script/dolphinscheduler-daemon.sh
index 358eded..85744fc 100755
--- a/script/dolphinscheduler-daemon.sh
+++ b/script/dolphinscheduler-daemon.sh
@@ -100,7 +100,7 @@ case $startStop in
(start)
if [ "$DOCKER" = "true" ]; then
echo start $command in docker
- export DOLPHINSCHEDULER_OPTS="$DOLPHINSCHEDULER_OPTS
-XX:+UseContainerSupport -XX:+UnlockExperimentalVMOptions
-XX:+UseCGroupMemoryLimitForHeap"
+ export DOLPHINSCHEDULER_OPTS="$DOLPHINSCHEDULER_OPTS
-XX:-UseContainerSupport"
exec_command="$LOG_FILE $DOLPHINSCHEDULER_OPTS -classpath
$DOLPHINSCHEDULER_CONF_DIR:$DOLPHINSCHEDULER_LIB_JARS $CLASS"
$JAVA_HOME/bin/java $exec_command
else
diff --git a/tools/dependencies/known-dependencies.txt
b/tools/dependencies/known-dependencies.txt
index 64d4095..7843c33 100755
--- a/tools/dependencies/known-dependencies.txt
+++ b/tools/dependencies/known-dependencies.txt
@@ -165,7 +165,7 @@ mybatis-spring-2.0.2.jar
netty-3.6.2.Final.jar
netty-all-4.1.53.Final.jar
opencsv-2.3.jar
-oshi-core-3.5.0.jar
+oshi-core-3.9.1.jar
paranamer-2.3.jar
parquet-hadoop-bundle-1.8.1.jar
poi-3.17.jar
@@ -211,7 +211,6 @@ swagger-models-1.5.24.jar
skywalking-agent.jar
spring-commons-8.4.0.jar
tephra-api-0.6.0.jar
-threetenbp-1.3.6.jar
transaction-api-1.1.jar
validation-api-2.0.1.Final.jar
xercesImpl-2.9.1.jar