Spark 配置:SPARK_MEM 与 SPARK_WORKER_MEMORY
Posted
技术标签:
【中文标题】Spark 配置:SPARK_MEM 与 SPARK_WORKER_MEMORY【英文标题】:Spark Configuration: SPARK_MEM vs. SPARK_WORKER_MEMORY 【发布时间】:2013-06-14 20:00:06 【问题描述】:在spark-env.sh
中,可以配置以下环境变量:
# - SPARK_WORKER_MEMORY, to set how much memory to use (e.g. 1000m, 2g)
export SPARK_WORKER_MEMORY=22g
[...]
# - SPARK_MEM, to change the amount of memory used per node (this should
# be in the same format as the JVM's -Xmx option, e.g. 300m or 1g)
export SPARK_MEM=3g
如果我用这个启动一个独立的集群:
$SPARK_HOME/bin/start-all.sh
我可以在 Spark Master UI 网页上看到,所有工作人员一开始都只有 3GB RAM:
-- Workers Memory Column --
22.0 GB (3.0 GB Used)
22.0 GB (3.0 GB Used)
22.0 GB (3.0 GB Used)
[...]
但是,我在spark-env.sh
中将22g
指定为SPARK_WORKER_MEMORY
我对此有些困惑。可能我不明白“节点”和“工人”之间的区别。
谁能解释这两种内存设置之间的区别以及我可能做错了什么?
我正在使用 spark-0.7.0。另请参阅here 了解更多配置信息。
【问题讨论】:
【参考方案1】:一个独立的集群可以托管多个 Spark 集群(每个“集群”都绑定到一个特定的 SparkContext)。也就是说,您可以让一个集群运行 kmeans,一个集群运行 Shark,另一个集群运行一些交互式数据挖掘。
在这种情况下,22GB 是您分配给 Spark 独立集群的内存总量,并且您的 SparkContext 特定实例使用每个节点 3GB。因此,您可以使用最多 21GB 再创建 6 个 SparkContext。
【讨论】:
以上是关于Spark 配置:SPARK_MEM 与 SPARK_WORKER_MEMORY的主要内容,如果未能解决你的问题,请参考以下文章
在执行spar-sql程序中报错:java.lang.NoSuchMethodError: org.apache.spark.internal.Logging.$init$(Lorg/apache/s
Spark启动时报错localhost: failed to launch: nice -n 0 /home/chan/spark/spark-2.4.3-bin-hadoop2.7/bin/spar