配置Spark on YARN集群内存


参考原文:http://blog.javachen.com/2015/06/09/memory-in-spark-on-yarn.html?utm_source=tuicool

 

运行文件有几个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

 

需要注意的是,主节点和各个从节点需要分别配置内存,可以根据机器的情况动态配置。我在主节点的配置为:

<configuration>

<!-- Site specific YARN configuration properties -->
        <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>
</configuration>

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM