9

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)
[...]

但是,我指定22gSPARK_WORKER_MEMORYspark-env.sh

我对此有些困惑。可能我不明白“节点”和“工人”之间的区别。

有人可以解释两种内存设置之间的区别以及我可能做错了什么吗?

我正在使用 spark-0.7.0。另请参阅此处了解更多配置信息。

4

1 回答 1

11

一个独立的集群可以托管多个 Spark 集群(每个“集群”都绑定到一个特定的 SparkContext)。即你可以让一个集群运行kmeans,一个集群运行Shark,另一个运行一些交互式数据挖掘。

在这种情况下,22GB 是您分配给 Spark 独立集群的内存总量,并且您的 SparkContext 特定实例使用每个节点 3GB。因此,您可以使用最多 21GB 再创建 6 个 SparkContext。

于 2013-06-18T16:35:47.183 回答