在 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.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 的按需用户集群?
zeppein 停止后,Zeppelin 在 Yarn Cluster 模式下启动的 Spark (Yarn) 应用程序不会被杀死
如何设置 Zeppelin 以使用远程 EMR Yarn 集群
zeppelin 使用 yarn-application 模式时如何设置适当的 jobmanager 内存大小
在 Ubuntu 14.04 上以 Yarn-Client 模式在 Spark 上的 Zeppelin 中加载外部依赖项