Ha *_*ham 33 memory config cluster-computing apache-spark
我正在配置Apache Spark集群.
当我使用1个主服务器和3个从服务器运行集群时,我在主监视器页面上看到了这一点:
Memory
2.0 GB (512.0 MB Used)
2.0 GB (512.0 MB Used)
6.0 GB (512.0 MB Used)
Run Code Online (Sandbox Code Playgroud)
我想为工作人员增加使用的内存,但我找不到合适的配置.我已将spark-env.sh更改为如下:
export SPARK_WORKER_MEMORY=6g
export SPARK_MEM=6g
export SPARK_DAEMON_MEMORY=6g
export SPARK_JAVA_OPTS="-Dspark.executor.memory=6g"
export JAVA_OPTS="-Xms6G -Xmx6G"
Run Code Online (Sandbox Code Playgroud)
但是用过的内存仍然是一样的.我该怎么做才能改变用过的内存?
sam*_*est 16
使用1.0.0+并使用spark-shell或spark-submit时,请使用该--executor-memory选项.例如
spark-shell --executor-memory 8G ...
Run Code Online (Sandbox Code Playgroud)
0.9.0及以下:
当您启动作业或启动shell时更改内存.我们必须修改spark-shell脚本,以便它通过作为底层java应用程序的参数来携带命令行参数.特别是:
OPTIONS="$@"
...
$FWDIR/bin/spark-class $OPTIONS org.apache.spark.repl.Main "$@"
Run Code Online (Sandbox Code Playgroud)
然后我们可以运行我们的spark shell,如下所示:
spark-shell -Dspark.executor.memory=6g
Run Code Online (Sandbox Code Playgroud)
当为独立jar配置它时,我在创建spark上下文之前以编程方式设置系统属性,并将值作为命令行参数传递(我可以使它比长卷绕系统道具更短).
System.setProperty("spark.executor.memory", valueFromCommandLine)
Run Code Online (Sandbox Code Playgroud)
至于更改默认的群集范围,抱歉,不完全确定如何正确地执行它.
最后一点 - 我有点担心你有2个节点2GB和一个6GB节点.你可以使用的内存将限制在最小的节点 - 所以这里2GB.
小智 13
在Spark 1.1.1中,设置工作人员的最大内存.在conf/spark.env.sh中,写下:
export SPARK_EXECUTOR_MEMORY=2G
Run Code Online (Sandbox Code Playgroud)
如果尚未使用配置文件,请复制模板文件
cp conf/spark-env.sh.template conf/spark-env.sh
Run Code Online (Sandbox Code Playgroud)
然后进行更改,不要忘记采购它
source conf/spark-env.sh
Run Code Online (Sandbox Code Playgroud)
Ha *_*ham 10
在我的情况下,我使用ipython笔记本电脑服务器连接到spark.我想为执行者增加内存.
这就是我做的:
from pyspark import SparkContext
from pyspark.conf import SparkConf
conf = SparkConf()
conf.setMaster(CLUSTER_URL).setAppName('ipython-notebook').set("spark.executor.memory", "2g")
sc = SparkContext(conf=conf)
Run Code Online (Sandbox Code Playgroud)
根据Spark文档,您可以在提交应用程序时使用命令行参数更改每个节点的内存--executor-memory.例如
./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master.node:7077 \
--executor-memory 8G \
--total-executor-cores 100 \
/path/to/examples.jar \
1000
Run Code Online (Sandbox Code Playgroud)
我已经测试过它的确有效.