|
@@ -19,6 +19,7 @@ package org.apache.dolphinscheduler.server.utils;
|
|
|
|
|
|
import org.apache.dolphinscheduler.common.Constants;
|
|
import org.apache.dolphinscheduler.common.Constants;
|
|
import org.apache.dolphinscheduler.common.enums.ProgramType;
|
|
import org.apache.dolphinscheduler.common.enums.ProgramType;
|
|
|
|
+import org.apache.dolphinscheduler.common.process.ResourceInfo;
|
|
import org.apache.dolphinscheduler.common.task.flink.FlinkParameters;
|
|
import org.apache.dolphinscheduler.common.task.flink.FlinkParameters;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -44,9 +45,11 @@ public class FlinkArgsUtils {
|
|
*/
|
|
*/
|
|
public static List<String> buildArgs(FlinkParameters param) {
|
|
public static List<String> buildArgs(FlinkParameters param) {
|
|
List<String> args = new ArrayList<>();
|
|
List<String> args = new ArrayList<>();
|
|
|
|
+
|
|
String deployMode = "cluster";
|
|
String deployMode = "cluster";
|
|
- if (StringUtils.isNotEmpty(param.getDeployMode())) {
|
|
+ String tmpDeployMode = param.getDeployMode();
|
|
- deployMode = param.getDeployMode();
|
|
+ if (StringUtils.isNotEmpty(tmpDeployMode)) {
|
|
|
|
+ deployMode = tmpDeployMode;
|
|
|
|
|
|
}
|
|
}
|
|
if (!"local".equals(deployMode)) {
|
|
if (!"local".equals(deployMode)) {
|
|
@@ -54,68 +57,70 @@ public class FlinkArgsUtils {
|
|
|
|
|
|
args.add(Constants.FLINK_YARN_CLUSTER);
|
|
args.add(Constants.FLINK_YARN_CLUSTER);
|
|
|
|
|
|
-
|
|
+ int slot = param.getSlot();
|
|
- if (param.getSlot() != 0) {
|
|
+ if (slot != 0) {
|
|
args.add(Constants.FLINK_YARN_SLOT);
|
|
args.add(Constants.FLINK_YARN_SLOT);
|
|
- args.add(String.format("%d", param.getSlot()));
|
|
+ args.add(String.format("%d", slot));
|
|
}
|
|
}
|
|
|
|
|
|
- if (StringUtils.isNotEmpty(param.getAppName())) {
|
|
+ String appName = param.getAppName();
|
|
|
|
+ if (StringUtils.isNotEmpty(appName)) {
|
|
args.add(Constants.FLINK_APP_NAME);
|
|
args.add(Constants.FLINK_APP_NAME);
|
|
- args.add(param.getAppName());
|
|
+ args.add(appName);
|
|
}
|
|
}
|
|
|
|
|
|
- if (param.getTaskManager() != 0) {
|
|
+ int taskManager = param.getTaskManager();
|
|
|
|
+ if (taskManager != 0) {
|
|
args.add(Constants.FLINK_TASK_MANAGE);
|
|
args.add(Constants.FLINK_TASK_MANAGE);
|
|
- args.add(String.format("%d", param.getTaskManager()));
|
|
+ args.add(String.format("%d", taskManager));
|
|
}
|
|
}
|
|
|
|
|
|
- if (StringUtils.isNotEmpty(param.getJobManagerMemory())) {
|
|
+ String jobManagerMemory = param.getJobManagerMemory();
|
|
|
|
+ if (StringUtils.isNotEmpty(jobManagerMemory)) {
|
|
args.add(Constants.FLINK_JOB_MANAGE_MEM);
|
|
args.add(Constants.FLINK_JOB_MANAGE_MEM);
|
|
- args.add(param.getJobManagerMemory());
|
|
+ args.add(jobManagerMemory);
|
|
}
|
|
}
|
|
|
|
|
|
- if (StringUtils.isNotEmpty(param.getTaskManagerMemory())) {
|
|
+ String taskManagerMemory = param.getTaskManagerMemory();
|
|
|
|
+ if (StringUtils.isNotEmpty(taskManagerMemory)) {
|
|
args.add(Constants.FLINK_TASK_MANAGE_MEM);
|
|
args.add(Constants.FLINK_TASK_MANAGE_MEM);
|
|
- args.add(param.getTaskManagerMemory());
|
|
+ args.add(taskManagerMemory);
|
|
}
|
|
}
|
|
|
|
|
|
args.add(Constants.FLINK_detach);
|
|
args.add(Constants.FLINK_detach);
|
|
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if (param.getProgramType() != null) {
|
|
+ ProgramType programType = param.getProgramType();
|
|
- if (param.getProgramType() != ProgramType.PYTHON) {
|
|
+ String mainClass = param.getMainClass();
|
|
- if (StringUtils.isNotEmpty(param.getMainClass())) {
|
|
+ if (programType != null && programType != ProgramType.PYTHON && StringUtils.isNotEmpty(mainClass)) {
|
|
- args.add(Constants.FLINK_MAIN_CLASS);
|
|
+ args.add(Constants.FLINK_MAIN_CLASS);
|
|
- args.add(param.getMainClass());
|
|
+ args.add(param.getMainClass());
|
|
- }
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if (param.getMainJar() != null) {
|
|
+ ResourceInfo mainJar = param.getMainJar();
|
|
- args.add(param.getMainJar().getRes());
|
|
+ if (mainJar != null) {
|
|
|
|
+ args.add(mainJar.getRes());
|
|
}
|
|
}
|
|
|
|
|
|
- if (StringUtils.isNotEmpty(param.getMainArgs())) {
|
|
+ String mainArgs = param.getMainArgs();
|
|
- args.add(param.getMainArgs());
|
|
+ if (StringUtils.isNotEmpty(mainArgs)) {
|
|
|
|
+ args.add(mainArgs);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- if (StringUtils.isNotEmpty(param.getOthers())) {
|
|
+ String others = param.getOthers();
|
|
- String others = param.getOthers();
|
|
+ String queue = param.getQueue();
|
|
- if (!others.contains("--qu")) {
|
|
+ if (StringUtils.isNotEmpty(others)) {
|
|
- if (StringUtils.isNotEmpty(param.getQueue()) && !deployMode.equals("local")) {
|
|
+
|
|
- args.add(Constants.FLINK_QUEUE);
|
|
+ if (!others.contains(Constants.FLINK_QUEUE) && StringUtils.isNotEmpty(queue) && !deployMode.equals("local")) {
|
|
- args.add(param.getQueue());
|
|
+ args.add(Constants.FLINK_QUEUE);
|
|
- }
|
|
+ args.add(param.getQueue());
|
|
}
|
|
}
|
|
- args.add(param.getOthers());
|
|
+ args.add(others);
|
|
- } else if (StringUtils.isNotEmpty(param.getQueue()) && !deployMode.equals("local")) {
|
|
+ } else if (StringUtils.isNotEmpty(queue) && !deployMode.equals("local")) {
|
|
args.add(Constants.FLINK_QUEUE);
|
|
args.add(Constants.FLINK_QUEUE);
|
|
args.add(param.getQueue());
|
|
args.add(param.getQueue());
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
return args;
|
|
return args;
|