Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 无法设置spark驱动程序内存_Apache Spark_Jupyter Notebook_Yarn - Fatal编程技术网

Apache spark 无法设置spark驱动程序内存

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

我正在Jupiter笔记本上构建一个spark(在ApacheSparkVersion2.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等参数。为了检查它是否与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选项。此答案中的链接现在已失效,是否有更新的链接?