yarn-site.xml


要保證spark on yarn的穩定性,避免報錯,就必須保證正確的配置,尤其是yarn-site.xml。

首先來理解一下yarn-site.xml各個參數的意義(引自董的博客

注:下面<value>...</value>中的hadoop001都是我為${yarn.resourcemanager.hostname}自定義的名字

ResourceManager相關配置參數
<property>
<name>yarn.resourcemanager.address</name>
<value>hadoop001:8032</value>
</property>
ResourceManager 對客戶端暴露的地址。客戶端通過該地址向RM提交應用程序,殺死應用程序等
默認值:${yarn.resourcemanager.hostname}:8032

<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>hadoop001:8030</value>
</property>
參數解釋:ResourceManager 對ApplicationMaster暴露的訪問地址。ApplicationMaster通過該地址向RM申請資源、釋放資源等。
默認值:${yarn.resourcemanager.hostname}:8030

<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop001:8088</value>
</property>
參數解釋:ResourceManager對外web ui地址。用戶可通過該地址在瀏覽器中查看集群各類信息。
默認值:${yarn.resourcemanager.hostname}:8088

<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>hadoop001:8031</value>
</property>
參數解釋:ResourceManager 對NodeManager暴露的地址。NodeManager通過該地址向RM匯報心跳,領取任務等。
默認值:${yarn.resourcemanager.hostname}:8031

<property>
<name>yarn.resourcemanager.admin.address</name>
<value>hadoop001:8033</value>
</property>
參數解釋:ResourceManager 對管理員暴露的訪問地址。管理員通過該地址向RM發送管理命令等。
默認值:${yarn.resourcemanager.hostname}:8033

<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
參數解釋:啟用的資源調度器主類。目前可用的有FIFO、Capacity Scheduler和Fair Scheduler。
默認值:org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

還有:
yarn.resourcemanager.resource-tracker.client.thread-count
參數解釋:處理來自NodeManager的RPC請求的Handler數目。
默認值:50

yarn.resourcemanager.scheduler.client.thread-count
參數解釋:處理來自ApplicationMaster的RPC請求的Handler數目。
默認值:50

yarn.scheduler.minimum-allocation-mb/ yarn.scheduler.maximum-allocation-mb
參數解釋:單個可申請的最小/最大內存資源量。比如設置為1024和3072,則運行MapRedce作業時,每個Task最少可申請1024MB內存,最多可申請3072MB內存。
默認值:1024/8192

yarn.scheduler.minimum-allocation-vcores / yarn.scheduler.maximum-allocation-vcores
參數解釋:單個可申請的最小/最大虛擬CPU個數。比如設置為1和4,則運行MapRedce作業時,每個Task最少可申請1個虛擬CPU,最多可申請4個虛擬CPU。什么是虛擬CPU,可閱讀我的這篇文章:“YARN 資源調度器剖析”。
默認值:1/32

yarn.resourcemanager.nodes.include-path /yarn.resourcemanager.nodes.exclude-path
參數解釋:NodeManager黑白名單。如果發現若干個NodeManager存在問題,比如故障率很高,任務運行失敗率高,則可以將之加入黑名單中。注意,這兩個配置參數可以動態生效。(調用一個refresh命令即可)
默認值:“”

yarn.resourcemanager.nodemanagers.heartbeat-interval-ms
參數解釋:NodeManager心跳間隔
默認值:1000(毫秒)

 

NodeManager相關配置參數
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
yarn.nodemanager.aux-services
參數解釋:NodeManager上運行的附屬服務。需配置成mapreduce_shuffle,才可運行MapReduce程序
默認值:“”

<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
<description>Whether to enable log aggregation</description>
</property>
還有
yarn.nodemanager.resource.memory-mb
參數解釋:NodeManager總的可用物理內存。注意,該參數是不可修改的,一旦設置,整個運行過程中不可動態修改。另外,該參數的默認值是8192MB,即使你的機器內存不夠8192MB,YARN也會按照這些內存來使用(傻不傻?),因此,這個值通過一定要配置。不過,Apache已經正在嘗試將該參數做成可動態修改的。
默認值:8192

yarn.nodemanager.vmem-pmem-ratio
參數解釋:每使用1MB物理內存,最多可用的虛擬內存數。
默認值:2.1

yarn.nodemanager.resource.cpu-vcores
參數解釋:NodeManager總的可用虛擬CPU個數。
默認值:8

yarn.nodemanager.local-dirs
參數解釋:中間結果存放位置,類似於1.0中的mapred.local.dir。注意,這個參數通常會配置多個目錄,已分攤磁盤IO負載。
默認值:${hadoop.tmp.dir}/nm-local-dir

yarn.nodemanager.log-dirs
參數解釋:日志存放地址(可配置多個目錄)。
默認值:${yarn.log.dir}/userlogs

yarn.nodemanager.log.retain-seconds
參數解釋:NodeManager上日志最多存放時間(不啟用日志聚集功能時有效)。
默認值:10800(3小時)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM