From c41e6b20162226762a6c8ee5ce10888c33964d90 Mon Sep 17 00:00:00 2001 From: debugger87 Date: Sun, 24 Jan 2016 17:08:35 +0800 Subject: [PATCH] [SPARK-12973][YARN] Support to set priority when submit spark application to YARN --- docs/running-on-yarn.md | 7 +++++++ .../main/scala/org/apache/spark/deploy/yarn/Client.scala | 1 + .../org/apache/spark/deploy/yarn/ClientArguments.scala | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/running-on-yarn.md b/docs/running-on-yarn.md index ad66b9f64a34b..1203185799431 100644 --- a/docs/running-on-yarn.md +++ b/docs/running-on-yarn.md @@ -271,6 +271,13 @@ If you need a reference to the proper location to put log files in the YARN so t The name of the YARN queue to which the application is submitted. + + spark.yarn.priority + 0 + + The priority of spark application which is submitted to YARN. + + spark.yarn.jar (none) diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala b/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala index d4ca255953a48..8e143cd175210 100644 --- a/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala +++ b/yarn/src/main/scala/org/apache/spark/deploy/yarn/Client.scala @@ -182,6 +182,7 @@ private[spark] class Client( val appContext = newApp.getApplicationSubmissionContext appContext.setApplicationName(args.appName) appContext.setQueue(args.amQueue) + appContext.setPriority(Priority.newInstance(args.priority)) appContext.setAMContainerSpec(containerContext) appContext.setApplicationType("SPARK") sparkConf.getOption(CONF_SPARK_YARN_APPLICATION_TAGS) diff --git a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala index a9f4374357356..384e442871a86 100644 --- a/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala +++ b/yarn/src/main/scala/org/apache/spark/deploy/yarn/ClientArguments.scala @@ -41,7 +41,7 @@ private[spark] class ClientArguments(args: Array[String], sparkConf: SparkConf) var amMemory: Int = 512 // MB var amCores: Int = 1 var appName: String = "Spark" - var priority = 0 + var priority = sparkConf.get("spark.yarn.priority", "0").toInt var principal: String = null var keytab: String = null def isClusterMode: Boolean = userClass != null