Apache spark 无法设置spark驱动程序内存
我正在Jupiter笔记本上构建一个spark(在ApacheSparkVersion2.4.3上运行)会话,如下所示Apache spark 无法设置spark驱动程序内存,apache-spark,jupyter-notebook,yarn,Apache Spark,Jupyter Notebook,Yarn,我正在Jupiter笔记本上构建一个spark(在ApacheSparkVersion2.4.3上运行)会话,如下所示 spark_session = SparkSession.builder .master("yarn-client") .enableHiveSupport() .getOrCreate() spark_session.conf.set("sp
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等参数。为了检查它是否与session builder/Jupiter一起运行,我从命令行使用spark submit运行了一个应用程序,令我惊讶的是,它选择了我正在传递的驱动程序内存
有人能解释一下吗?为什么它不只是从jupyter笔记本中选取spark.driver.memory将启动pyspark with Thread客户端模式,驱动程序内存和某些配置无法使用属性“conf”设置,因为JVM驱动程序已经启动。必须在命令行中进行设置 因此,对于您的问题-当您在客户机模式下运行spark时,通过“conf.set”设置属性将不起作用,因为JVM驱动程序已在该点使用默认配置启动。这就是为什么当您从命令行传递属性时,它正在拾取属性 启动pyspark的一个简单方法是
pyspark——驱动程序内存2g——执行器内存2g
更新:
要使用自定义pyspark参数启动jupyter,请创建一个自定义内核,有关jupyter内核入门的更多信息:
在定义“kernel.json”时,将
--驱动程序内存2g--执行程序内存2g
添加到PYSPARK\u SUBMIT\u ARGS选项 谢谢你,格鲁比。在这种情况下,如何从命令行设置spark.driver.memory?对朱庇特来说很新鲜。司机就是这样吗?作为spark.executor.memory,使用conf.setby设置内核。但我想用jupyter的《内在火花》。不是命令行方式,即使spark submit命令行也会读取驱动程序内存。抱歉,如果我在之前的消息中不清楚啊!明白你的意思了,我的错。根据您的需求,我建议创建一个定制的jupyter内核。开始使用自定义jupyter内核的最佳方法是:在定义“kernel.json”时,将--驱动程序内存2g--执行程序内存2g
添加到Pypark_SUBMIT_ARGS选项。此答案中的链接现在已失效,是否有更新的链接?