如何使用org.apache.spark.launcher.SparkLauncher设置YARN队列?
如何用SparkLauncher指定YARN队列
嗨,这个问题很常见,其实和你用spark-submit时的逻辑是对应的,咱们直接看怎么改代码就行:
在spark-submit里用--queue myqueuename指定队列,本质上是设置了Spark的配置项spark.yarn.queue。所以在SparkLauncher中,你只需要添加一行setConf代码来设置这个配置项就可以了。
修改后的完整代码如下:
SparkAppHandle handle = new SparkLauncher() .setSparkHome("/myserver/spark-2.2.0-bin-hadoop2.4") .setAppResource(jarPath) .setMainClass("task.MyTask") .setMaster("yarn") .setDeployMode("cluster") .setConf(SparkLauncher.EXECUTOR_MEMORY, "8G") .setConf(SparkLauncher.EXECUTOR_CORES, "4") // 新增这一行指定YARN队列 .setConf("spark.yarn.queue", "myqueuename") .addAppArgs("--input", inputPath, "--output", outputPath) .startApplication(taskListener);
简单说一下原理:spark-submit的--queue参数是一个快捷参数,最终会被转换成spark.yarn.queue这个配置项传递给Spark应用,所以在编程式提交的时候,直接设置这个配置就和命令行指定队列的效果完全一致啦。
内容的提问来源于stack exchange,提问作者Haha TTpro
相关产品推荐
相关产品推荐

