无法设置火花驱动内存
Unable to set spark driver memory
我正在从 Jupiter 笔记本构建一个 spark(运行 在 Apache Spark 版本 2.4.3 上)会话
spark_session = SparkSession.builder
.master("yarn-client")
.enableHiveSupport()
.getOrCreate()
spark_session.conf.set("spark.executor.memory", '8g')
spark_session.conf.set('spark.executor.cores', '3')
spark_session.conf.set('spark.cores.max', '3')
spark_session.conf.set("spark.driver.memory",'8g')
sc = spark_session.sparkContext
我可以从应用程序大师那里看到所有参数都已正确设置 spark.driver.memory。 spark.driver.memory 不管我怎么设置它都只用了 1GB。
我检查了 spark-default.conf,但我没有 spark.driver.memory 等参数。为了检查它是否与会话构建器/Jupiter 一起使用,我 运行 从命令行使用 spark-submit 的应用程序,令我惊讶的是它选择了我正在传递的驱动程序内存。
有人可以解释一下吗?它不从 jupyter
中只选择 spark.driver.memory 的原因可能是什么?
Jupyter notebook 将以 yarn-client 模式启动 pyspark,由于 JVM 驱动程序已经启动,因此无法使用 属性 'conf' 设置驱动程序内存和一些配置。你必须在命令行中设置它。
所以,对于你的问题 - 当你 运行 在客户端模式下通过 "conf.set" 设置 属性 时,将无法工作,因为 JVM 驱动程序已经默认启动配置。这就是为什么当您从命令行传递 属性 时它会选择它们。
启动 pyspark 的简单方法是
pyspark --driver-memory 2g --executor-memory 2g
更新:
要使用自定义 pyspark 参数启动 jupyter,请创建自定义内核,更多关于 jupyter 内核入门的信息:http://cleverowl.uk/2016/10/15/installing-jupyter-with-the-pyspark-and-r-kernels-for-spark-development/
并且在定义 "kernel.json" 时将 --driver-memory 2g --executor-memory 2g
添加到 PYSPARK_SUBMIT_ARGS 选项。
我正在从 Jupiter 笔记本构建一个 spark(运行 在 Apache Spark 版本 2.4.3 上)会话
spark_session = SparkSession.builder
.master("yarn-client")
.enableHiveSupport()
.getOrCreate()
spark_session.conf.set("spark.executor.memory", '8g')
spark_session.conf.set('spark.executor.cores', '3')
spark_session.conf.set('spark.cores.max', '3')
spark_session.conf.set("spark.driver.memory",'8g')
sc = spark_session.sparkContext
我可以从应用程序大师那里看到所有参数都已正确设置 spark.driver.memory。 spark.driver.memory 不管我怎么设置它都只用了 1GB。
我检查了 spark-default.conf,但我没有 spark.driver.memory 等参数。为了检查它是否与会话构建器/Jupiter 一起使用,我 运行 从命令行使用 spark-submit 的应用程序,令我惊讶的是它选择了我正在传递的驱动程序内存。
有人可以解释一下吗?它不从 jupyter
中只选择 spark.driver.memory 的原因可能是什么?Jupyter notebook 将以 yarn-client 模式启动 pyspark,由于 JVM 驱动程序已经启动,因此无法使用 属性 'conf' 设置驱动程序内存和一些配置。你必须在命令行中设置它。
所以,对于你的问题 - 当你 运行 在客户端模式下通过 "conf.set" 设置 属性 时,将无法工作,因为 JVM 驱动程序已经默认启动配置。这就是为什么当您从命令行传递 属性 时它会选择它们。
启动 pyspark 的简单方法是
pyspark --driver-memory 2g --executor-memory 2g
更新:
要使用自定义 pyspark 参数启动 jupyter,请创建自定义内核,更多关于 jupyter 内核入门的信息:http://cleverowl.uk/2016/10/15/installing-jupyter-with-the-pyspark-and-r-kernels-for-spark-development/
并且在定义 "kernel.json" 时将 --driver-memory 2g --executor-memory 2g
添加到 PYSPARK_SUBMIT_ARGS 选项。