CDH集羣中YARN的參數配置

CDH集羣中YARN的參數配置node

前言:Hadoop 2.0以後,原先的MapReduce不在是簡單的離線批處理MR任務的框架,升級爲MapReduceV2Yarn)版本,也就是把資源調度和任務分發兩塊分離開來。而在最新的CDH版本中,同時集成了MapReduceV1MapReduceV2Yarn)兩個版本,若是集羣中須要使用Yarn作統一的資源調度,建議使用Yarnapp

CDHYarn的部分參數作了少了修改,而且添加了相關的中文說明,本文着重介紹了CDH中相比 MapReduceV1一些參數改動的配置。框架

1、CPU配置jvm

ApplicationMaster虛擬 CPU 內核oop

yarn.app.mapreduce.am.resource.cpu-vcores       // ApplicationMaster佔用的cpu內核數(Gateway--資源管理)性能

容器虛擬 CPU 內核優化

yarn.nodemanager.resource.cpu-vcores        // NodeManager 最大能分配的cpu核數(NodeManager --資源管理)spa

結論:當前 nodemanager 申請的 ApplicationMaster數總 和小於 nodemanager最大cpu內核數日誌

2、內存配置orm

容器內存   

yarn.nodemanager.resource.memory-mb      //單個NodeManager能分配的最大內存(NodeManager --資源管理)                //Memory Total= 單個NodeManager內存 * 節點數

結論:提交任務佔用內存Memory Used 小於Memory Total

Map 任務內存   

mapreduce.map.memory.mb                         //爲做業的每一個 Map 任務分配的物理內存量  Gateway--資源管理 

結論:mapreduce的內存需求不大於appmaster的內存需求

最大容器內存  

yarn.scheduler.maximum-allocation-mb     //單個任務可申請最大內存 ResourceManager--資源管理 

3、同一個Map或者Reduce 並行執行

Map 任務推理執行

mapreduce.map.speculative                       //Gateway

Reduce 任務推理執行

mapreduce.reduce.speculative                   //Gateway

4、JVM重用

yarn的jvm重用跟以前不一樣了,若是啓用了該功能,則會將一個「小的application」的全部子task在同一個JVM裏面執行,達到JVM重用的目的。

啓用 Ubertask 優化 :

mapreduce.job.ubertask.enable | (默認false)     //true則表示啓用jvm重用(Gateway--性能)

jvm重用的決定參數以下:

Ubertask最大 Map   

mapreduce.job.ubertask.maxmaps                   //超過多少個map啓用jvm重用(Gateway--性能)

Ubertask最大 Reduce   

mapreduce.job.ubertask.maxreduces               //超過多少  Reduce  啓用jvm重用,目前支持1 Gateway--性能)

Ubertask最大做業大小   

mapreduce.job.ubertask.maxbytes                  //application的輸入大小的閥值,默認爲 block大小(Gateway--性能)

首先,簡單回顧一下Hadoop 1.x中的JVM重用功能:用戶能夠經過更改配置,來指定TaskTracker在同一個JVM裏面最多能夠累積執行的Task的數量(默認是1)。這樣的好處是減小JVM啓動、退出的次數,從而達到提升任務執行效率的目的。 配置的方法也很簡單:經過設置mapred-site.xml裏面參數mapred.job.reuse.jvm.num.tasks的值。該值默認是1,意味着TaskTracker會爲每個Map任務或Reduce任務都啓動一個JVM,當任務執行完後再退出該JVM。依次類推,若是該值設置爲3,TaskTracker則會在同一個JVM裏面最多依次執行3個Task,而後纔會退出該JVM。

Yarn(Hadoop MapReduce v2)裏面,再也不有參數mapred.job.reuse.jvm.num.tasks,但它也有相似JVM Reuse的功能——uber。據Arun的說法,啓用該功能可以讓一些任務的執行效率提升2到3倍(「we've observed 2x-3x speedup for some jobs」)。不過,因爲Yarn的結構已經大不一樣於MapReduce v1中JobTracker/TaskTracker的結構,所以uber的原理和配置都和以前的JVM重用機制大不相同。

5、其餘參數

給spark加日誌編輯 spark-defaults.conf

spark.yarn.historyServer.address=http://cloud003:18080/

相關文章
相關標籤/搜索