diff --git a/kylin-spark-project/kylin-spark-engine/src/main/java/org/apache/kylin/engine/spark/application/SparkEntry.java b/kylin-spark-project/kylin-spark-engine/src/main/java/org/apache/kylin/engine/spark/application/SparkEntry.java index 526b7bc0b9f..31974f65bc2 100644 --- a/kylin-spark-project/kylin-spark-engine/src/main/java/org/apache/kylin/engine/spark/application/SparkEntry.java +++ b/kylin-spark-project/kylin-spark-engine/src/main/java/org/apache/kylin/engine/spark/application/SparkEntry.java @@ -22,15 +22,6 @@ public class SparkEntry { public static void main(String[] args) { - int retCode = JobWorkSpace.execute(args); - if (retCode == 2) { - System.exit(1); - } else if (System.getProperty("spark.master").equals("yarn") && System.getProperty("spark.submit.deployMode").equals("cluster")) { - if (retCode == 1) { - throw new RuntimeException("Job failed!"); - } - } else { - System.exit(retCode); - } + JobWorkSpace.execute(args); } } diff --git a/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/spark/application/JobWorkSpace.scala b/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/spark/application/JobWorkSpace.scala index 03029efef41..7d1a324647b 100644 --- a/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/spark/application/JobWorkSpace.scala +++ b/kylin-spark-project/kylin-spark-engine/src/main/scala/org/apache/spark/application/JobWorkSpace.scala @@ -28,18 +28,25 @@ import org.apache.spark.internal.Logging import org.apache.spark.scheduler.KylinJobEventLoop object JobWorkSpace extends Logging { - def execute(args: Array[String]): Int = { + def execute(args: Array[String]): Unit = { try { val (application, appArgs) = resolveArgs(args) val eventLoop = new KylinJobEventLoop val worker = new JobWorker(application, appArgs, eventLoop) val monitor = new JobMonitor(eventLoop) val workspace = new JobWorkSpace(eventLoop, monitor, worker) - workspace.run() + if (System.getProperty("spark.master").equals("yarn") && System.getProperty("spark.submit.deployMode").equals("cluster")) { + val res = workspace.run() + if (res != 0) { + System.exit(res) + } + } else { + System.exit(workspace.run()) + } } catch { case throwable: Throwable => logError("Error occurred when init job workspace.", throwable) - 2 + System.exit(1) } }