配置Spark on YARN集羣內存

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

 

運行文件有幾個G大,默認的spark的內存設置就不行了,須要從新設置。尚未看Spark源碼,只能先搜搜相關的博客解決問題。java

 

按照Spark應用程序中的driver分佈方式不一樣,Spark on YARN有兩種模式: yarn-client 模式、 yarn-cluster模式。當在YARN上運行Spark做業,每一個Spark executor做爲一個YARN容器運行。Spark能夠使得多個Tasks在同一個容器裏面運行。node

 

配置Spark內存的文件是Spark設置裏的spark-env.sh文件,裏面詳細分類單機下,yarn-client模式下以及yarn-cluster模式下的內存設置項。bash

 

配置YARN內存的文件是Hadoop設置裏的yarn-site.xml文件,幾個比較經常使用的參數以下:app

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

 

須要注意的是,主節點和各個從節點須要分別配置內存,能夠根據機器的狀況動態配置。我在主節點的配置爲:oop

<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>
相關文章
相關標籤/搜索