配置Spark on YARN集群内存
Posted 格格巫 MMQ!!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置Spark on YARN集群内存相关的知识,希望对你有一定的参考价值。
在这里插入代码片
运行文件有几个G大,默认的spark的内存设置就不行了,需要重新设置。还没有看Spark源码,只能先搜搜相关的博客解决问题。
按照Spark应用程序中的driver分布方式不同,Spark on YARN有两种模式: yarn-client 模式、 yarn-cluster模式。当在YARN上运行Spark作业,每个Spark executor作为一个YARN容器运行。Spark可以使得多个Tasks在同一个容器里面运行。
配置Spark内存的文件是Spark设置里的spark-env.sh文件,里面详细分类单机下,yarn-client模式下以及yarn-cluster模式下的内存设置项。
配置YARN内存的文件是Hadoop设置里的yarn-site.xml文件,几个比较常用的参数如下:
yarn.app.mapreduce.am.resource.mb :AM能够申请的最大内存,默认值为1536MB
yarn.nodemanager.resource.memory-mb :nodemanager能够申请的最大内存,默认值为8192MB
yarn.scheduler.minimum-allocation-mb :调度时一个container能够申请的最小资源,默认值为1024MB
yarn.scheduler.maximum-allocation-mb :调度时一个container能够申请的最大资源,默认值为8192MB
需要注意的是,主节点和各个从节点需要分别配置内存,可以根据机器的情况动态配置。我在主节点的配置为:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.app.mapreduce.am.resource.mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>81920</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>81920</value>
</property>
以上是关于配置Spark on YARN集群内存的主要内容,如果未能解决你的问题,请参考以下文章
在 Spark-on-Yarn 中配置 Executor 和 Driver 内存
Spark基础学习笔记06:搭建Spark On YARN模式的集群