SbloodyS commented on code in PR #14055:
URL: 
https://github.com/apache/dolphinscheduler/pull/14055#discussion_r1186667963


##########
dolphinscheduler-task-plugin/dolphinscheduler-task-api/src/main/java/org/apache/dolphinscheduler/plugin/task/api/am/YarnApplicationManager.java:
##########
@@ -19,56 +19,38 @@
 
 import org.apache.dolphinscheduler.common.constants.Constants;
 import org.apache.dolphinscheduler.common.enums.ResourceManagerType;
-import org.apache.dolphinscheduler.common.utils.HttpUtils;
-import org.apache.dolphinscheduler.common.utils.JSONUtils;
-import org.apache.dolphinscheduler.common.utils.KerberosHttpClient;
 import org.apache.dolphinscheduler.common.utils.PropertyUtils;
 import org.apache.dolphinscheduler.plugin.task.api.TaskException;
-import org.apache.dolphinscheduler.plugin.task.api.enums.TaskExecutionStatus;
-
-import org.apache.commons.lang3.StringUtils;
 
 import java.io.File;
 import java.nio.charset.StandardCharsets;
 import java.util.List;
 
 import lombok.extern.slf4j.Slf4j;
 
-import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.google.auto.service.AutoService;
 
 @Slf4j
 @AutoService(ApplicationManager.class)
 public class YarnApplicationManager implements ApplicationManager {
 
-    private static final String RM_HA_IDS = 
PropertyUtils.getString(Constants.YARN_RESOURCEMANAGER_HA_RM_IDS);
-    private static final String APP_ADDRESS = 
PropertyUtils.getString(Constants.YARN_APPLICATION_STATUS_ADDRESS);
-    private static final String JOB_HISTORY_ADDRESS =
-            PropertyUtils.getString(Constants.YARN_JOB_HISTORY_STATUS_ADDRESS);
-    private static final int HADOOP_RESOURCE_MANAGER_HTTP_ADDRESS_PORT_VALUE =
-            
PropertyUtils.getInt(Constants.HADOOP_RESOURCE_MANAGER_HTTPADDRESS_PORT, 8088);
-
     @Override
     public boolean killApplication(ApplicationManagerContext 
applicationManagerContext) throws TaskException {
         YarnApplicationManagerContext yarnApplicationManagerContext =
                 (YarnApplicationManagerContext) applicationManagerContext;
         String executePath = yarnApplicationManagerContext.getExecutePath();
         String tenantCode = yarnApplicationManagerContext.getTenantCode();
         List<String> appIds = yarnApplicationManagerContext.getAppIds();
-        for (String appId : appIds) {
-            try {
-                TaskExecutionStatus applicationStatus = 
getApplicationStatus(appId);
 
-                if (!applicationStatus.isFinished()) {
-                    String commandFile = String.format("%s/%s.kill", 
executePath, appId);
-                    String cmd = getKerberosInitCommand() + "yarn application 
-kill " + appId;
-                    execYarnKillCommand(tenantCode, appId, commandFile, cmd);
-                }
-            } catch (Exception e) {
-                log.error("Get yarn application app id [{}}] status failed", 
appId, e);
-                throw new TaskException(e.getMessage());
-            }
+        try {
+            String commandFile = String.format("%s/%s.kill", executePath, 
String.join(Constants.UNDERLINE, appIds));
+            String cmd = getKerberosInitCommand() + "yarn application -kill " 
+ String.join(Constants.SPACE, appIds);

Review Comment:
   Generally LGTM.
   
   Just some NIT. We could use yarn rest api to kill jobs just like the way we 
do in monitoring yarn job status. So that we can reduce dependence on worker 
node yarn components.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to