在 YARN 中为 Apache zeppelin 分配 Spark 内存

Posted

技术标签:

【中文标题】在 YARN 中为 Apache zeppelin 分配 Spark 内存【英文标题】:Spark Memory allocation in YARN for apache zeppelin 【发布时间】:2018-05-12 23:59:21 【问题描述】:

我在 YARN 集群中通过 Zeppelin 运行 Spark。当我看到我的 YARN web ui 时,我看到了 Zeppelin 使用 1 个容器、1 个核心和 1g 内存。所以转到我的解释器设置,我将它们更改为:

spark.cores.max 8 
spark.executor.memory 8g 

然后我重新启动解释器,但我的内存分配保持不变:

我试图将解释器属性 args 添加到:

args --driver-memory 8G --executor-memory 8G --executor-cores 8

但也没有变化。

感谢任何建议。

【问题讨论】:

您是否在capacity-scheduler.xml 中指定了"yarn.scheduler.capacity.resource-calculator":"org.apache.hadoop.yarn.util.resource.DominantResourceCalculator" 事实证明,Zeppelin 直到必要时才向 YARN 请求内存。我稍后会回答这个问题或删除这个帖子。 【参考方案1】:

两个选项

    编辑$ZEPPELIN_HOME/conf/zeppelin-env.sh,添加export SPARK_SUBMIT_OPTIONS="--num-executors 10 --driver-memory 8g --executor-memory 10g --executor-cores 4 "

    如果您没有 zeppelin-env.sh,请将zeppelin-env.sh.template 复制并重命名为zeppelin-env.sh

    编辑$SPARK_CONF_DIR/spark-defaults.conf 并修改您要添加的内容。

之后,重启你的服务器。

【讨论】:

正如@zjffdu 所说,zeppelin 0.8.0 确实修复了这些错误。【参考方案2】:

这是zeppelin 0.7.x的一个bug,0.8.0已经修复了这个问题。

【讨论】:

以上是关于在 YARN 中为 Apache zeppelin 分配 Spark 内存的主要内容,如果未能解决你的问题,请参考以下文章

Apache Zeppelin + Spark 的按需用户集群?

Zeppelin 坚持在 YARN 工作

zeppein 停止后,Zeppelin 在 Yarn Cluster 模式下启动的 Spark (Yarn) 应用程序不会被杀死

如何设置 Zeppelin 以使用远程 EMR Yarn 集群

zeppelin 使用 yarn-application 模式时如何设置适当的 jobmanager 内存大小

在 Ubuntu 14.04 上以 Yarn-Client 模式在 Spark 上的 Zeppelin 中加载外部依赖项