更改从jupyter运行的spark驱动程序的默认堆栈大小?

时间:2017-01-20 14:39:25

标签: apache-spark pyspark jupyter-notebook

我正在使用jupyter在Spark集群上运行python脚本。我想更改驱动程序默认堆栈大小。我在documentation中发现我可以使用spark.driver.extraJavaOptions向驱动程序JVM发送任何选项,但文档中有一个注释:

  

注意:在客户端模式下,不能通过以下方式设置此配置   SparkConf直接在你的应用程序中,因为驱动程序JVM有   已经开始了。相反,请通过   --driver-java-options命令行选项或在默认属性文件中。

问题是:如何在从jupyter运行时更改默认驱动程序参数?

1 个答案:

答案 0 :(得分:2)

您可以通过将spark.driver.extraJavaOptions作为配置值传递到SparkConf来自定义用于驱动程序的Java选项,例如:

from pyspark import SparkConf, SparkContext
conf = (SparkConf()
     .setMaster("spark://spark-master:7077")
     .setAppName("MyApp")
     .set("spark.driver.extraJavaOptions", "-Xss4M"))
sc = SparkContext.getOrCreate(conf = conf)

请注意,在http://spark.apache.org/docs/latest/configuration.html中,它说明了spark.driver.extraJavaOptions:

注意:在客户端模式下,不能直接在应用程序中通过SparkConf设置此配置,因为驱动程序JVM已在此时启动。相反,请通过--driver-java-options命令行选项或默认属性文件中设置它。

然而,这是在谈论JVM SparkConf类。当它在PySpark Python SparkConf中设置时,它将它作为命令行参数传递给spark-submit,然后在实例化JVM时使用它,以便Spark文档中的注释不适用。