You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by lu...@apache.org on 2015/09/06 09:39:08 UTC

[02/50] [abbrv] incubator-kylin git commit: resume mr job when it has been killed by admin

resume mr job when it has been killed by admin


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/7e9d3ae6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/7e9d3ae6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/7e9d3ae6

Branch: refs/heads/master
Commit: 7e9d3ae620cfc9eb426f04e633992bbd1eff31f6
Parents: 1ef0eb6
Author: qianhao.zhou <qi...@ebay.com>
Authored: Tue Aug 11 11:49:30 2015 +0800
Committer: qianhao.zhou <qi...@ebay.com>
Committed: Tue Aug 11 11:49:30 2015 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/job/common/MapReduceExecutable.java   | 5 +++++
 .../java/org/apache/kylin/job/constant/JobStepStatusEnum.java   | 2 +-
 .../java/org/apache/kylin/job/tools/HadoopStatusChecker.java    | 2 +-
 3 files changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/7e9d3ae6/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java b/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
index 0b8d5b6..10c6eba 100644
--- a/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
+++ b/job/src/main/java/org/apache/kylin/job/common/MapReduceExecutable.java
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
 import java.lang.reflect.Constructor;
+import java.util.Collections;
 import java.util.Map;
 
 import org.apache.commons.lang.StringUtils;
@@ -134,6 +135,10 @@ public class MapReduceExecutable extends AbstractExecutable {
             JobStepStatusEnum status = JobStepStatusEnum.NEW;
             while (!isDiscarded()) {
                 JobStepStatusEnum newStatus = statusChecker.checkStatus();
+                if (status == JobStepStatusEnum.KILLED) {
+                    executableManager.updateJobOutput(getId(), ExecutableState.ERROR, Collections.<String, String>emptyMap(), "killed by admin");
+                    return new ExecuteResult(ExecuteResult.State.FAILED, "killed by admin");
+                }
                 if (status == JobStepStatusEnum.WAITING && (newStatus == JobStepStatusEnum.FINISHED || newStatus == JobStepStatusEnum.ERROR || newStatus == JobStepStatusEnum.RUNNING)) {
                     final long waitTime = System.currentTimeMillis() - getStartTime();
                     setMapReduceWaitTime(waitTime);

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/7e9d3ae6/job/src/main/java/org/apache/kylin/job/constant/JobStepStatusEnum.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/constant/JobStepStatusEnum.java b/job/src/main/java/org/apache/kylin/job/constant/JobStepStatusEnum.java
index 69de0b9..08ee79a 100644
--- a/job/src/main/java/org/apache/kylin/job/constant/JobStepStatusEnum.java
+++ b/job/src/main/java/org/apache/kylin/job/constant/JobStepStatusEnum.java
@@ -19,7 +19,7 @@
 package org.apache.kylin.job.constant;
 
 public enum JobStepStatusEnum {
-    NEW(0), PENDING(1), RUNNING(2), FINISHED(4), ERROR(8), DISCARDED(16), WAITING(32);
+    NEW(0), PENDING(1), RUNNING(2), FINISHED(4), ERROR(8), DISCARDED(16), WAITING(32), KILLED(64);
 
     private final int code;
 

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/7e9d3ae6/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java b/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
index ea7822c..225253a 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/HadoopStatusChecker.java
@@ -65,7 +65,7 @@ public class HadoopStatusChecker {
                 status = JobStepStatusEnum.ERROR;
                 break;
             case KILLED:
-                status = JobStepStatusEnum.ERROR;
+                status = JobStepStatusEnum.KILLED;
                 break;
             case UNDEFINED:
                 switch (result.getLeft()) {