Apache spark Spark忽略执行器和驱动程序内存的配置
我试图增加Spark中执行器和驱动程序的内存分配,但我有一种奇怪的感觉,Spark忽略了我的配置 我正在使用以下命令: spark提交spark_consumer.py--驱动程序内存=10G --executor memory=5G--conf spark.executor.extraJavaOptions='-XX:+UseParallelGC -XX:+PrintGCDetails-XX:+PrintGCTimeStamps' 我的初始化代码是Apache spark Spark忽略执行器和驱动程序内存的配置,apache-spark,pyspark,Apache Spark,Pyspark,我试图增加Spark中执行器和驱动程序的内存分配,但我有一种奇怪的感觉,Spark忽略了我的配置 我正在使用以下命令: spark提交spark_consumer.py--驱动程序内存=10G --executor memory=5G--conf spark.executor.extraJavaOptions='-XX:+UseParallelGC -XX:+PrintGCDetails-XX:+PrintGCTimeStamps' 我的初始化代码是 class SparkRawConsumer
class SparkRawConsumer:
def __init__(self, filename):
self.sparkContext = SparkContext.getOrCreate()
self.sparkContext.setLogLevel("ERROR")
self.sqlContext = SQLContext(self.sparkContext)
从理论上讲,我应该看到我的驱动程序总共有10GB的可用内存。但是,我在Spark UI中看到了这一点(我的可用内存小于400MB):
为什么Spark会忽略我正在传递的配置?定义Spark配置有3种不同的方法 1) spark-env.sh 2) spark提交参数 3) 硬编码sparkConf,例如:
sparkConf.set(“spark.driver.memory”,“10G”)代码>
优先级为:硬编码>spark提交>spark.env
如果您认为您的参数被其他内容覆盖,您可以使用以下选项进行检查:sparkConf.getOption(“spark.driver.memory”)代码>
如果您想确保您的选项不被硬代码覆盖,请将其覆盖
您可以在这里看到所有选项:这里的问题是我错误地指定了参数的顺序。键入spark submit--help
明确指定输入参数的顺序,以spark submit
:
Usage: spark-submit [options] <app jar | python file | R file> [app arguments]
我不相信您可以在应用程序中设置内存配置。我已经尝试了你的所有三种方法,spark submit
是我目前唯一可以使用的方法。你能在选项中提供一些硬编码的示例吗?
spark-submit --driver-memory 8G --executor-memory 8G spark_consumer.py