簡體   English   中英

Spark會忽略執行程序和驅動程序內存的配置

[英]Spark ignores configurations for executor and driver memory

我試圖為Spark中的執行程序和驅動程序增加內存分配,但是我感到奇怪的是Spark忽略了我的配置。

我正在使用以下命令:

spark-submit spark_consumer.py --driver-memory = 10G --executor-memory = 5G --conf spark.executor.extraJavaOptions ='-XX:+ UseParallelGC -XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps'

我的初始化代碼是

class SparkRawConsumer:

    def __init__(self, filename):
        self.sparkContext = SparkContext.getOrCreate()

        self.sparkContext.setLogLevel("ERROR")
        self.sqlContext = SQLContext(self.sparkContext)

從理論上講,我應該看到驅動程序總共有10GB的可用內存。 但是,我在Spark UI中看到了這一點(我的可用內存少於400MB): 在此處輸入圖片說明

為什么Spark會忽略我要傳遞的配置?

定義火花配置的3種方法

1)spark-env.sh

2)火花提交參數

3)硬編碼sparkConf,例如: sparkConf.set("spark.driver.memory","10G");

優先級是:硬編碼> spark-submit> spark.env;

如果您認為您的參數被其他內容覆蓋,則可以使用以下sparkConf.getOption("spark.driver.memory");進行檢查: sparkConf.getOption("spark.driver.memory");

如果要確保您的選項不會覆蓋硬代碼,則使用它。

您可以在此處查看所有選項: https : //spark.apache.org/docs/latest/configuration.html

這里的問題是我沒有正確指定參數的順序。 輸入spark-submit --help清楚地指定輸入參數到spark-submit的順序:

Usage: spark-submit [options] <app jar | python file | R file> [app arguments]

更改參數的順序后,便可以在PySpark應用程序上增加內存:

spark-submit --driver-memory 8G --executor-memory 8G spark_consumer.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM