如何在SparkR会话中设置YARN队列?

时间:2018-02-05 21:31:21

标签: r apache-spark yarn sparkr

如果我使用SparkR(不是spark-submit)初始化Spark会话,就像这样...

library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
sparkR.session()

有没有办法设置队列?我试过这样的事情:

sparkR.session(queue = "queue_name") 

但它似乎没有用。我在SparkR中成功使用队列的唯一方法是使用已弃用的init()函数:

sc <- SparkR::sparkR.init(master = "yarn-client", sparkEnvir = list(spark.yarn.queue="queue-name")) 
hiveContext <- sparkRHive.init(sc)

但是这会引发警告:'SparkR::sparkR.init' is deprecated.

这如何转化为sparkR.session()

1 个答案:

答案 0 :(得分:1)

启动spark R时,已生成Spark Session。 您需要停止当前会话并启动一个新会话以设置所需的设置。

我使用以下

sparkR.stop()
sparkR.session(
    # master="local[2]",              # local master
    master="yarn",                    # cluster master
    appName="my_sparkR",
    sparkConfig=list(
        spark.driver.memory="4g",
        spark.executor.memory="2g",
        spark.yarn.queue="your_desired_queue"
    )
)

从Spark监控页面验证设置是否正确更新。