gpt4 book ai didi

apache-spark - Spark Python 性能调优

转载 作者:行者123 更新时间:2023-12-04 14:44:01 25 4
gpt4 key购买 nike

我使用以下命令创建了一个用于 Spark 开发的 iPython 笔记本:

ipython notebook --profile=pyspark

我创建了一个 sc SparkContext 使用 Python 代码如下:
import sys
import os
os.environ["YARN_CONF_DIR"] = "/etc/hadoop/conf"
sys.path.append("/opt/cloudera/parcels/CDH/lib/spark/python")
sys.path.append("/opt/cloudera/parcels/CDH/lib/spark/python/lib/py4j-0.8.1-src.zip")
from pyspark import SparkContext, SparkConf
from pyspark.sql import *

sconf = SparkConf()
conf = (SparkConf().setMaster("spark://701.datafireball.com:7077")
.setAppName("sparkapp1")
.set("spark.executor.memory", "6g"))
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)

我想更好地了解 spark.executor.memory , 在文档中

Amount of memory to use per executor process, in the same format as JVM memory strings



这是否意味着在一个节点上运行的所有进程的累积内存不会超过该上限?如果是这种情况,我应该将该数字设置为尽可能高的数字吗?

这里也是一些属性的列表,是否有一些其他参数可以从默认值中调整以提高性能。

谢谢!

最佳答案

Does that mean the accumulated memory of all the processes running on one node will not exceed that cap?



是的,如果你在 YARN-client 模式下使用 Spark,否则它只限制 JVM。

然而,关于 YARN 的这个设置有一个棘手的事情。 YARN 将累积内存限制为 spark.executor.memory Spark 对 executor JVM 使用相同的限制,在这样的限制中 Python 没有内存,这就是为什么我不得不关闭 YARN 限制。

至于根据您的独立 Spark 配置对您问题的诚实回答:
不, spark.executor.memory不限制 Python 的内存分配。

顺便说一句,将选项设置为 SparkConf 不会对 Spark 独立执行程序产生任何影响,因为它们已经启动。阅读更多关于 conf/spark-defaults.conf

If that is the case, should I set that number to a number that as high as possible?



您应该将其设置为平衡数。 JVM 有一个特殊的特性:它会分配 spark.executor.memory最终,永远不会让它自由。您不能设置 spark.executor.memoryTOTAL_RAM / EXECUTORS_COUNT因为它将占用 Java 的所有内存。

在我的环境中,我使用 spark.executor.memory=(TOTAL_RAM / EXECUTORS_COUNT) / 1.5 ,这意味着 0.6 * spark.executor.memory将被 Spark 缓存使用, 0.4 * spark.executor.memory - 执行器 JVM,和 0.5 * spark.executor.memory - 通过 Python。

您可能还想调 spark.storage.memoryFraction , 即 0.6默认情况下。

关于apache-spark - Spark Python 性能调优,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27757117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com