使用zeppelin,scala和EMR在spark中配置调度池

问题描述 投票:2回答:1

在pyspark中,我可以通过执行以下操作在zeppelin(在AWS EMR上)中更改为公平的调度程序:

conf = sc.getConf()
conf.set('spark.scheduler.allocation.file', 
         '/etc/spark/conf.dist/fairscheduler.xml.template')
sc.setLocalProperty("spark.scheduler.pool", 'production')

但是,如果我在scala单元格中尝试类似的东西,那么事情将继续在FIFO池中运行

val conf = sc.getConf()
conf.set("spark.scheduler.allocation.file", 
         "/etc/spark/conf.dist/fairscheduler.xml.template")   
sc.setLocalProperty("spark.scheduler.pool", "FAIR")

我尝试了很多组合,但没有任何效果。任何建议表示赞赏。

scala apache-spark pyspark amazon-emr apache-zeppelin
1个回答
1
投票

我遇到了与Spark 2.4类似的问题。在我的情况下,通过删除我的Spark配置中的默认“spark.scheduler.pool”选项解决了该问题。可能是您的Scala Spark解释器设置了spark.scheduler.pool,但您的python不是。

我将问题追溯到Spark中的一个错误 - https://issues.apache.org/jira/browse/SPARK-26988。问题是,如果在基本配置中设置配置属性“spark.scheduler.pool”,则无法使用setLocalProperty覆盖它。从基本配置中删除它使其正常工作。有关详细信息,请参阅错误说明。

© www.soinside.com 2019 - 2024. All rights reserved.