【问题标题】:Setting YARN queue in PySpark在 PySpark 中设置 YARN 队列
【发布时间】:2018-07-16 16:45:03
【问题描述】:

在 PySpark 中创建 Spark 上下文时,我通常使用以下代码:

conf = (SparkConf().setMaster("yarn-client").setAppName(appname)
        .set("spark.executor.memory", "10g")
        .set("spark.executor.instances", "7")
        .set("spark.driver.memory", "5g")
        .set("spark.shuffle.service.enabled","true")
        .set("spark.dynamicAllocation.enabled","true")
        .set("spark.dynamicAllocation.minExecutors","5")
        )
sc = SparkContext(conf=conf)

但是,这会将其置于默认队列中,该队列几乎总是超出容量。我们有几个不太忙的队列可用,所以我的问题是 - 如何设置我的 Spark 上下文以使用另一个队列?

编辑:澄清一下 - 我希望为交互式作业设置队列(例如,在 Jupyter 笔记本中进行探索性分析),因此我无法使用 spark-submit 设置队列。

【问题讨论】:

    标签: hadoop apache-spark pyspark hadoop-yarn


    【解决方案1】:

    您可以在 spark-submit 命令中使用以下参数。

    --queue queue_name
    

    您可以在代码中设置此属性。 spark.yarn.queue

    希望这会有所帮助。

    谢谢

    【讨论】:

    • 不使用 spark-submit 怎么办?例如,我经常在 Jupyter notebook 中进行探索性分析。
    • 请设置上述属性。我在编辑后添加。
    【解决方案2】:

    尝试使用spark.yarn.queue 而不是queue

    conf = pyspark.SparkConf().set("spark.yarn.queue", "your_queue_name")
    sc
    

    【讨论】:

    • 添加一些信息为什么要使用这个 yarn.spark 队列,也许还有一个指向它的文档的链接。
    • 我找不到您建议的 yarn.spark.queue 的引用。相反,这对我有用:SparkSession.builder.appName('myapp').config(conf=SparkConf().setAll([('spark.yarn.queue', 'root.myqueue')])).getOrCreate()
    • 将“spark.yarn.queue”设置为队列名称有帮助。
    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 2015-06-18
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 2017-01-04
    • 2016-03-02
    相关资源
    最近更新 更多