配置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