[英]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.