在Yarn上增加Spark中的Java堆大小

3
如何使用Spark on Yarn的额外Java选项增加Java堆空间?
以下是目前我拥有且可行的代码:
./bin/spark-shell --master yarn-client --num-executors 10 --executor-memory 4g

这是不起作用的内容:

./bin/spark-shell --master yarn-client --num-executors 10 --executor-memory 4g --extrajavaoptions '-Xmx2g'

我想添加spark.yarn.am.extraJavaOptions。默认情况下是没有的。我知道它应该是一个字符串,包含要传递给客户端模式下的YARN应用程序主节点的额外JVM选项。我想输入类似于-Xmx2g的内容。请问我做错了什么吗?


你的执行器是否出现了内存不足的情况,还是驱动程序?如果执行器出现了内存不足的情况,那么 --executor-memory 控制着分配给每个执行器的内存量。只需增加这个数字即可。 - Saurfang
1个回答

4

首先,使用该命令的方法如下:

--conf spark.executor.extrajavaoptions="Option" [Cluster]
--conf spark.yarn.am.extraJavaOptions="Option" [YARN]

请注意,
根据Spark 配置 文档

spark.executor.extraJavaOptions

一个字符串,用于向执行程序传递额外的JVM选项。例如GC设置或其他日志记录。请注意,使用此选项设置Spark属性或堆大小设置是非法的。应该使用SparkConf对象或与spark-submit脚本一起使用的spark-defaults.conf文件来设置Spark属性。堆大小设置可以使用spark.executor.memory设置。

您不应该使用这个选项来设置堆大小设置,而是可以在 spark-defaults 脚本中进行配置。
示例布局可以在这里找到:Git repo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接