配置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 On Yarn部署

Spark基础学习笔记06:搭建Spark On YARN模式的集群

使用 Docker 搭建 Hadoop 集群 和 Spark On Yarn

Spark基础:Spark on Yarn(上)

Spark on Yarn:任务提交参数配置