我正在配置 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)
我想增加工作人员的已用内存,但我找不到合适的配置。我变了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"
但使用的内存还是一样。我应该怎么做才能更改已用内存?
当使用 1.0.0+ 并使用 Spark-shell 或 Spark-Submit 时,请使用--executor-memory
选项。例如。
spark-shell --executor-memory 8G ...
0.9.0 及以下:
当您启动作业或启动 shell 时,会更改内存。我们必须修改 Spark-shell 脚本,以便它能够携带命令行参数作为底层 Java 应用程序的参数。尤其:
OPTIONS="$@"
...
$FWDIR/bin/spark-class $OPTIONS org.apache.spark.repl.Main "$@"
然后我们可以运行 Spark shell,如下所示:
spark-shell -Dspark.executor.memory=6g
当为独立的 jar 配置它时,我在创建 Spark 上下文之前以编程方式设置系统属性,并将值作为命令行参数传递(然后我可以使其比冗长的系统属性更短)。
System.setProperty("spark.executor.memory", valueFromCommandLine)
至于更改默认集群范围,抱歉,不完全确定如何正确执行此操作。
最后一点 - 我有点担心你有 2 个 2GB 节点和一个 6GB 节点。您可以使用的内存将仅限于最小的节点 - 所以这里是 2GB。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)