前言:
上節(jié)課我們講了 MR job的提交YARN的工作流程 與 YARN的架構(gòu),本次課程詳細(xì)講講YARN,多多總結(jié)。
YARN(主從) 資源 ?+ 作業(yè)調(diào)度管理
YARN:是一種新的?Hadoop資源管理器奕剃,它是一個(gè)通用資源管理系統(tǒng),可為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度捐腿,它的引入為集群在利用率纵朋、資源統(tǒng)一管理和數(shù)據(jù)共享等方面帶來了巨大好處。
? ? ? ? ? ? ? ?? ResourceManager(RM):主要接收客戶端任務(wù)請(qǐng)求茄袖,接收和監(jiān)控NodeManager(NM)的資源情況匯報(bào)操软,負(fù)責(zé)資源的分配與調(diào)度,啟動(dòng)和監(jiān)控ApplicationMaster(AM)宪祥。
? ? ? ? ? ? ? ?ApplicationManager(作業(yè)):應(yīng)用程序管理聂薪,它是負(fù)責(zé)系統(tǒng)中所有的job,包括job的提交與調(diào)度器協(xié)商資源來啟動(dòng)ApplicationMaster(AM)和監(jiān)控(AM)運(yùn)行狀態(tài)蝗羊,并且失敗的時(shí)候能夠重新啟動(dòng)它藏澳,更新分配給一個(gè)新的Container容器的進(jìn)度或者狀態(tài),除了資源它不管耀找,它就負(fù)責(zé)job ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ?? Scheduler(調(diào)度器):更具容量隊(duì)列的限制條件將我們系統(tǒng)中的資源分配給正在運(yùn)用的一個(gè)應(yīng)用程序先進(jìn)先出調(diào)度器 :一個(gè)作業(yè)運(yùn)行完了翔悠,另一個(gè)才能運(yùn)行
1.FIFO先進(jìn)先出,一個(gè)的簡單調(diào)度器野芒,適合低負(fù)載集群蓄愁。(適合任務(wù)數(shù)量不多的情況下使用)
2.Capacity調(diào)度器,給不同隊(duì)列(即用戶或用戶組)分配一個(gè)預(yù)期最小容量复罐,在每個(gè)隊(duì)列內(nèi)部用層次化的FIFO來調(diào)度多個(gè)應(yīng)用程序涝登。(適用于有很多小的任務(wù)跑,需要占很多隊(duì)列效诅,不使用隊(duì)列胀滚,會(huì)造成資源的浪費(fèi))
3.Fair公平調(diào)度器,針對(duì)不同的應(yīng)用(也可以為用戶或用戶組)乱投,每個(gè)應(yīng)用屬于一個(gè)隊(duì)列咽笼,主旨是讓每個(gè)應(yīng)用分配的資源大體相當(dāng)。(當(dāng)然可以設(shè)置權(quán)重)戚炫,若是只有一個(gè)應(yīng)用剑刑,那集群所有資源都是他的。 適用情況:共享大集群、隊(duì)列之間有較大差別施掏。(生產(chǎn)使用)
在ResourceManager節(jié)點(diǎn)上的yarn-site.xml設(shè)置
Property===>yarn.resourcemanager.scheduler.class
Value=====>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler
在目錄$HADOOP_HOME/hadoop/etc/hadoop/capacity-scheduler.xml
修改完成后钮惠,需要執(zhí)行下面的命令:
$HADOOP_YARN_HOME/bin/yarn rmadmin -refreshQueues ? ?使功能動(dòng)態(tài)生效。
NodeManager:主要是節(jié)點(diǎn)上的資源和作業(yè)管理器七芭,啟動(dòng)Container運(yùn)行task計(jì)算素挽,上報(bào)資源、container情況給RM和任務(wù)處理情況給AM狸驳,整個(gè)集群有多個(gè)预明。
ApplicationMaster:?它是負(fù)責(zé)我們作業(yè)的監(jiān)控并跟蹤應(yīng)用執(zhí)行狀態(tài)來重啟失敗任務(wù)的,主要是單個(gè)Application(Job)的task管理和調(diào)度耙箍,向RM進(jìn)行資源的申請(qǐng)撰糠,向NM發(fā)出launchContainer指令,接收NM的task處理狀態(tài)信息辩昆。一個(gè)job只有一個(gè)主程序阅酪。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
Container:是YARN中資源的抽象,它封裝了某個(gè)節(jié)點(diǎn)上一定量的資源(CPU和內(nèi)存兩類資源)汁针。
Memory:
yarn.nodemanager.resource.memory-mb:64*0.8G=50G ?(如果內(nèi)存是64G遮斥,Yarn只能用到內(nèi)存的80%也就是50G)
yarn.scheduler.minimum-allocation-mb: 1G
yarn.scheduler.maximum-allocation-mb: 1G ? 50/1=50(并行度) 數(shù)量是多了,并行度大了 ?
一個(gè)作業(yè)200 MapTask 4輪才能結(jié)束扇丛,速度快了 ?作業(yè)可能掛了
yarn.scheduler.maximum-allocation-mb: 16G (生產(chǎn)設(shè)16G) ? 50/16=3(并行度) 數(shù)量是少了,并行度小了 ?
一個(gè)作業(yè)200 MapTask 70輪才能結(jié)束尉辑,速度慢了 ?作業(yè)時(shí)間長 穩(wěn)定不會(huì)掛
工作中一個(gè)job可以指定 yarn.scheduler.maximum-allocation-mb的值帆精,但一般不指定。
【若澤大數(shù)據(jù)實(shí)戰(zhàn)】使用YARN跑一個(gè)jar包
先啟動(dòng)Yarn
[hadoop@hadoop-01 sbin]$ ./start-all.sh?
[hadoop@hadoop-01 sbin]$ jps
3696 Jps
2772 NameNode
3092 SecondaryNameNode
2884 DataNode
3367 NodeManager
3259 ResourceManager
進(jìn)入hadoop的bin目錄 在hdfs上創(chuàng)建一個(gè)新文件夾
[hadoop@hadoop-01 sbin]$ hdfs dfs -mkidr /wordcount/input
創(chuàng)建一個(gè)test.log文件
[hadoop@hadoop-01 hadoop-2.8.1]$ vi test.log
a b c
www.ruozedata.com
c b a
~
將當(dāng)前目錄中的某個(gè)test.log文件復(fù)制到hdfs中(注意要確保當(dāng)前目錄中有該文件)
[hadoop@hadoop-01 hadoop-2.8.1]$ hdfs dfs -put test.log /wordcount/input
查看hdfs中是否有我們剛復(fù)制進(jìn)去的文件
進(jìn)入share的上層目錄隧魄,提交單詞統(tǒng)計(jì)任務(wù)卓练,實(shí)驗(yàn)環(huán)境下我們的提交差不多在15秒左右
生產(chǎn)環(huán)境中,應(yīng)該是30~50之間购啄,調(diào)優(yōu)可以壓到10秒之內(nèi)
[hadoop@hadoop-01 hadoop-2.8.1]$ ?yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar wordcount /wordcount/input /wrdcount/output
登錄網(wǎng)頁查看相關(guān)信息:http://192.168.137.30:8088/cluste
Yarn的常用命令
yarn application -list
yarn application -killapplication_1513862674371_0003(App的id)
再次回顧一下 YARN的工作流程:
客戶端提交job給 Applications Manager 連接Node Manager去申請(qǐng)一個(gè)Container的容器,這個(gè)容器運(yùn)行作業(yè)的App Mstr的主程序,啟動(dòng)后向App Manager進(jìn)行注冊(cè)畔濒,然后可以訪問URL界面孝赫,然后App Mastr向 Resource Scheduler申請(qǐng)資源,拿到一個(gè)資源的列表几迄,和對(duì)應(yīng)的NodeManager進(jìn)行通信蔚龙,去啟動(dòng)對(duì)應(yīng)的Container容器,去運(yùn)行 Reduce Task 和 Map Task (兩個(gè)先后運(yùn)行順序隨機(jī)運(yùn)行)映胁,它們是向App Mstr進(jìn)行匯報(bào)它們的運(yùn)行狀態(tài)木羹,?當(dāng)所有作業(yè)運(yùn)行完成后還需要向Applications Manager進(jìn)行匯報(bào)并注銷和關(guān)閉
yarn中,它按照實(shí)際資源需求為每個(gè)任務(wù)分配資源解孙,比如一個(gè)任務(wù)需要1GB內(nèi)存坑填,1個(gè)CPU抛人,則為其分配對(duì)應(yīng)的資源,而資源是用container表示的脐瑰,container是一個(gè)抽象概念妖枚,它實(shí)際上是一個(gè)JAVA對(duì)象,里面有資源描述(資源所在節(jié)點(diǎn)蚪黑,資源優(yōu)先級(jí)盅惜,資源量,比如CPU量忌穿,內(nèi)存量等)抒寂。當(dāng)一個(gè)applicationmaster向RM申請(qǐng)資源時(shí),RM會(huì)以container的形式將資源發(fā)送給對(duì)應(yīng)的applicationmaster掠剑,applicationmaster收到container后屈芜,與對(duì)應(yīng)的nodemanager通信,告訴它我要利用這個(gè)container運(yùn)行某個(gè)任務(wù)朴译。
【若澤大數(shù)據(jù)面試題】
請(qǐng)問RM節(jié)點(diǎn)上有Container容器的這種說法嗎井佑?
答:這種說法是錯(cuò)誤的,Container容器只運(yùn)行在 Node Manager上面眠寿。
在AM中躬翁,job已經(jīng)被分成一系列的task,并且是為每個(gè)task來startContainer盯拱。為什么NM上要存一個(gè)application的數(shù)據(jù)結(jié)構(gòu)呢盒发?
答:在YARN看來,他所維護(hù)的所有應(yīng)用程序叫appliction狡逢,但是到了計(jì)算框架這一層宁舰,各自有各自的名字,mapreduce叫job奢浑,storm叫topology等等蛮艰,YARN是資源管理系統(tǒng),不僅僅運(yùn)行mapreduce雀彼,還有其他應(yīng)用程序壤蚜,mapreduce只是一種計(jì)算應(yīng)用。但是yarn內(nèi)部設(shè)有應(yīng)用程序到計(jì)算框架應(yīng)用程序的映射關(guān)系(通常是id的映射)详羡,你這里所說的應(yīng)用程序仍律,job屬于不同層面的概念,切莫混淆实柠,要記住水泉,YARN是資源管理系統(tǒng),可看做云操作系統(tǒng),其他的東西草则,比如mapreduce钢拧,只是跑在yarn上的application,但是炕横,mapreduce是應(yīng)用層的東西源内,它可以有自己的屬于,比如job task份殿,但是yarn專業(yè)一層是不知道或者說看不到的膜钓。
“YARN是資源管理系統(tǒng),運(yùn)行在它之上的所有應(yīng)用程序叫application卿嘲,例如mapreduce就是運(yùn)行在YARN上的一個(gè)application颂斜。在mapreduce內(nèi)部產(chǎn)生了job、task等等對(duì)象”拾枣。但是還是有一點(diǎn)疑問:對(duì)于Yarn來說沃疮,對(duì)于每一個(gè)運(yùn)行程序application(例如mapreduce)只維護(hù)一個(gè)內(nèi)部application對(duì)象么?
比如在Yarn上運(yùn)行了一個(gè)mapreduce(它是跑在yarn上的application這里我能理解)梅肤,例如當(dāng)mapreduce中的某個(gè)job與NM發(fā)生交互時(shí)司蔬,YARN只能知道是mapreduce這個(gè)application再與它進(jìn)行交互,而無法得知是這個(gè)application中的某一個(gè)對(duì)象再與之進(jìn)行交互么姨蝴?這樣的話俊啼,例如當(dāng)不同的job(一個(gè)application中可以有很多job)與NM進(jìn)行交互時(shí),Yarn怎樣去區(qū)別當(dāng)前job左医《中或者Yarn在維護(hù)的那個(gè)application數(shù)據(jù)結(jié)構(gòu)中能夠表示該application的哪部分正在運(yùn)行?
答:YARN不需要知道是job還是其他東西與它交互炒辉,在他看來,只有application泉手,YARN為這些applicaiton提供了兩類接口黔寇,一個(gè)是申請(qǐng)資源,具體申請(qǐng)到資源后斩萌,applicaiton用來干啥缝裤,跑map task還是跑MPI task,YARN不管颊郎,二是運(yùn)行container的命令(container里面包的是task或者其他application內(nèi)部要跑的東西)憋飞,一般是一個(gè)shell命令,用于啟動(dòng)container(即啟動(dòng)task)姆吭。YARN看不到application什么時(shí)候運(yùn)行完榛做,他還有幾個(gè)task沒跑,這些只有applicaiton自己知道,當(dāng)application運(yùn)行結(jié)束后检眯,會(huì)告訴YARN厘擂,YARN再將他所有信息抹掉。
是否只有負(fù)責(zé)啟動(dòng)ApplicationMaster的NodeManager才會(huì)維護(hù)一個(gè)Application對(duì)象锰瘸?其他的NodeManager是否是根據(jù)ApplicationMaster發(fā)起的請(qǐng)求來啟動(dòng)屬于這個(gè)Application的其他Container刽严,這些NodeManager不需要維護(hù)Application的狀態(tài)機(jī)?
答:都需要維護(hù)避凝,通過Application狀態(tài)機(jī)可將節(jié)點(diǎn)上屬于這個(gè)App的所有Container聚集在一起舞萄,當(dāng)需要特殊操作,比如殺死Application時(shí)管削,可以將對(duì)應(yīng)的所有Container銷毀倒脓。
另外,需要注意佩谣,一個(gè)應(yīng)用程序的ApplicationMaster所在的節(jié)點(diǎn)也可以運(yùn)行它的container把还,這都是隨機(jī)的。
Container的節(jié)點(diǎn)隨機(jī)性茸俭?
答:Container的節(jié)點(diǎn)隨機(jī)性吊履,我的理解是Container運(yùn)行的節(jié)點(diǎn)是由分配資源時(shí)集群中哪些節(jié)點(diǎn)正好是空閑的來決定的,ResourceManager在為ApplicationMaster分配所需的Container的時(shí)候,完全有可能出現(xiàn)ApplicationMaster的本地節(jié)點(diǎn)上出現(xiàn)了空閑資源调鬓,這樣艇炎,如果分配成功之后,ApplicationMaster就和所屬的Container運(yùn)行在一個(gè)節(jié)點(diǎn)上了腾窝。
Memory 資源的調(diào)度和隔離:
基于以上考慮缀踪,YARN允許用戶配置每個(gè)節(jié)點(diǎn)上可用的物理內(nèi)存資源,注意虹脯,這里是“可用的”驴娃,因?yàn)橐粋€(gè)節(jié)點(diǎn)上的內(nèi)存會(huì)被若
干個(gè)服務(wù)共享,比如一部分給YARN循集,一部分給HDFS唇敞,一部分給HBase等,YARN配置的只是自己可以使用的咒彤,配置參數(shù)如下:
(1)yarn.nodemanager.resource.memory- - mb
表示該節(jié)點(diǎn)上YARN可使用的物理內(nèi)存總量疆柔,默認(rèn)是8192(MB),注意镶柱,如果你的節(jié)點(diǎn)內(nèi)存資源不夠8GB旷档,則需要調(diào)減小這個(gè)值,而
YARN不會(huì)智能的探測(cè)節(jié)點(diǎn)的物理內(nèi)存總量歇拆。
(2)yarn.nodemanager.vmem- - pmem- - ratio
任務(wù)每使用1MB物理內(nèi)存鞋屈,最多可使用虛擬內(nèi)存量范咨,默認(rèn)是2.1。
(3)yarn.nodemanager.pmem- - check- - enabled
是否啟動(dòng)一個(gè)線程檢查每個(gè)任務(wù)正使用的物理內(nèi)存量谐区,如果任務(wù)超出分配值湖蜕,則直接將其殺掉,默認(rèn)是true宋列。
(4)?yarn.nodemanager.vmem- - check- - enabled
是否啟動(dòng)一個(gè)線程檢查每個(gè)任務(wù)正使用的虛擬內(nèi)存量昭抒,如果任務(wù)超出分配值,則直接將其殺掉炼杖,默認(rèn)是true灭返。
(5)yarn.scheduler.minimum- - allocation- - mb
單個(gè)任務(wù)可申請(qǐng)的最少物理內(nèi)存量,默認(rèn)是1024(MB)坤邪,如果一個(gè)任務(wù)申請(qǐng)的物理內(nèi)存量少于該值熙含,則該對(duì)應(yīng)的值改為這個(gè)數(shù)。
(6)yarn.scheduler.maximum- - allocation- - mb
單個(gè)任務(wù)可申請(qǐng)的最多物理內(nèi)存量艇纺,默認(rèn)是8192(MB)怎静。
默認(rèn)情況下,YARN采用了線程監(jiān)控的方法判斷任務(wù)是否超量使用內(nèi)存黔衡,一旦發(fā)現(xiàn)超量蚓聘,則直接將其殺死。由于Cgroups對(duì)內(nèi)存的控
制缺乏靈活性(即任務(wù)任何時(shí)刻不能超過內(nèi)存上限盟劫,如果超過夜牡,則直接將其殺死或者報(bào)OOM),而Java進(jìn)程在創(chuàng)建瞬間內(nèi)存將翻
倍侣签,之后驟降到正常值塘装,這種情況下,采用線程監(jiān)控的方式更加靈活(當(dāng)發(fā)現(xiàn)進(jìn)程樹內(nèi)存瞬間翻倍超過設(shè)定值時(shí)影所,可認(rèn)為是正常
現(xiàn)象蹦肴,不會(huì)將任務(wù)殺死),因此YARN未提供Cgroups內(nèi)存隔離機(jī)制猴娩。
CPU資源的調(diào)度和隔離:
目前的CPU被劃分成虛擬CPU(CPU virtual Core)冗尤,這里的虛擬CPU是YARN自己引入的概念,
初衷是胀溺,考慮到不同節(jié)點(diǎn)的CPU性能可能不同,每個(gè)CPU具有的計(jì)算能力也是不一樣的皆看,比如某個(gè)物
理CPU的計(jì)算能力可能是另外一個(gè)物理CPU的2倍仓坞,這時(shí)候,你可以通過為第一個(gè)物理CPU多配置幾個(gè)
虛擬CPU彌補(bǔ)這種差異腰吟。用戶提交作業(yè)時(shí)无埃,可以指定每個(gè)任務(wù)需要的虛擬CPU個(gè)數(shù)徙瓶。在YARN中,CPU
相關(guān)配置參數(shù)如下:
(1) yarn.nodemanager.resource.cpu- - vcores
表示該節(jié)點(diǎn)上YARN可使用的虛擬CPU個(gè)數(shù)嫉称,默認(rèn)是4侦镇,注意,目前推薦將該值設(shè)值為與物理CPU核數(shù)
數(shù)目相同织阅。如果你的節(jié)點(diǎn)CPU核數(shù)不夠8個(gè)壳繁,則需要調(diào)減小這個(gè)值,而YARN不會(huì)智能的探測(cè)節(jié)點(diǎn)的物
理CPU總數(shù)荔棉。
(2) ?yarn.scheduler.minimum- - allocation- - vcores
單個(gè)任務(wù)可申請(qǐng)的最小虛擬CPU個(gè)數(shù)闹炉,默認(rèn)是1,如果一個(gè)任務(wù)申請(qǐng)的CPU個(gè)數(shù)少于該數(shù)润樱,則該對(duì)應(yīng)
的值改為這個(gè)數(shù)渣触。
(3) yarn.scheduler.maximum- - allocation- - vcores
單個(gè)任務(wù)可申請(qǐng)的最多虛擬CPU個(gè)數(shù),默認(rèn)是32壹若。
默認(rèn)情況下嗅钻,YARN是不會(huì)對(duì)CPU資源進(jìn)行調(diào)度的,你需要配置相應(yīng)的資源調(diào)度器店展。
【若澤大數(shù)據(jù)】生產(chǎn)場(chǎng)景:
內(nèi)存改完參數(shù) Yarn是要重啟的
1.計(jì)算及時(shí)性要求比較高:memory不夠养篓,cpu是足夠的,作業(yè)肯定是要掛掉的壁查,立即手工調(diào)整oom觉至,設(shè)置大,快速出結(jié)果睡腿,
2.計(jì)算機(jī)及時(shí)性不高:memory夠语御,cpu不夠,計(jì)算慢席怪,
需求5分鐘出1個(gè)job:job運(yùn)行1分鐘的時(shí)候应闯,oom了內(nèi)存不夠,shell腳本里面可以改參數(shù)挂捻,修改腳本內(nèi)存就自動(dòng)加碉纺,
生產(chǎn):cpu物理和虛擬的比例是1:2的關(guān)系(默認(rèn)), 有的生產(chǎn)會(huì)設(shè)置1:1
1.YARN架構(gòu)設(shè)計(jì)(mr的提交到Y(jié)arn的流程)
RM:調(diào)度器 + APPS Manager
NM:
? ? Container(容器):
? ? ? ? ? ? 1個(gè)NM --> 多個(gè)容器 --> 只能運(yùn)行一個(gè)task?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? APP Master |maptask | reduce task
? ? ? ? ? ? 1臺(tái)機(jī)器64G內(nèi)存16核 -->8個(gè)容器 -->8G +2核
? ? ? ? ? 1臺(tái)機(jī)器64G內(nèi)存:DN + NM =64*(75%~85%)?
? ? ? ?? 數(shù)據(jù)本地化
? ? ? ? ? 生產(chǎn):?
? ? ? ? ? ? ? ?? DN:4G?
? ? ? ? ? ? ? ? ? NM:50G
2.調(diào)優(yōu)
NM:yarn.nodemanager.resource.memory-mb:50 * 1024MB(生產(chǎn)調(diào))
container:memory+cpu
Memory:
? ? 任務(wù)計(jì)算最小是1024MB: ? ?
yarn.scheduler.minimum-allocation-mb:? 1024 1G-->2G-->3G? (生產(chǎn)調(diào)) ? ?
任務(wù)計(jì)算最多是8192MB刻撒,如果超過就kill: ? ?
yarn.scheduler.maximum-allocation-mb:? 8192<=50G? ? ? ? ? (生產(chǎn)調(diào)) ? ?
每次增加2048M骨田,默認(rèn)是1024MB: ? ?
yarn.scheduler.increment-allocation-mb: 2048? (CDH平臺(tái)) ? ? ?
增加到最大時(shí)執(zhí)行kill,默認(rèn)為true声怔; ? ? ? ?
yarn.nodemanager.pmem-check-enabled:true
yarn.nodemanager.vmem-pmem-ratio? ? 2.1? ? ? 使用1G內(nèi)存 2.1虛擬內(nèi)存 ? ?
yarn.nodemanager.vmem-check-enabled true
SWAP:硬盤做的态贤,說白了,就是拿一個(gè)比如20G的盤作為內(nèi)存 ? ?
參數(shù):http://blog.csdn.net/javastart/article/details/51375287 ? ?
高度計(jì)算 ? ? ? ?
1.不允許計(jì)算慢醋火,允許掛掉:swap 沒有 ? ? ? ?
2.允許計(jì)算慢悠汽,不允許任務(wù)掛掉:swap 有 ??
vm.swappiness=0-100 ? ? ??
?0:不是禁用箱吕,說明調(diào)用swap的積極性是最差的 ? ? ? ?
10:調(diào)用swap的積極性是稍微好點(diǎn) ? ? ? ?
100:太積極? ? ? ? 生產(chǎn):選擇2+vm.swappiness=10
CPU:
yarn.nodemanager.resource.cpu-vcores ?? -1
yarn.scheduler.minimum-allocation-vcores ? 1
yarn.scheduler.maximum-allocation-vcores4<=32(生產(chǎn)調(diào))
vcore:虛擬核1個(gè)物理核為2個(gè)虛擬核? CDH有個(gè)參數(shù),一般默認(rèn)就行
http://blog.itpub.net/30089851/viewspace-2127851/
http://blog.itpub.net/30089851/viewspace-2127850/
JVM系列:
http://blog.itpub.net/30089851/cid-180723-abstract-1/
4.queue:隊(duì)列 見CDH (補(bǔ)充)
需求:
1.項(xiàng)目: ? ? ? ?
開發(fā) ? ? ? ?
測(cè)試 ? ??
?開發(fā)/測(cè)試隊(duì)列 ? ? ??
?部署生產(chǎn)? ? 生產(chǎn)隊(duì)列 ? ? ? ?
就是一套集群環(huán)境
2.多個(gè)項(xiàng)目: ? ? ??
?項(xiàng)目1生產(chǎn)? 隊(duì)列1資源少點(diǎn) ? ? ? ?
項(xiàng)目2生產(chǎn)? 隊(duì)列2資源多點(diǎn) ? ? ??
?就是一套集群環(huán)境 ? ??
?? 開發(fā)和測(cè)試就是另外一套 ? ?
默認(rèn):default
調(diào)度: ? ? ??
?計(jì)算調(diào)度 ? ? ? ?
公平調(diào)度 Fair (生產(chǎn)) ??
?http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-configurations-fair-scheduler/