版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2014年9月16日二大數(shù)據(jù)Insight HD MapReduceFu1234MapReduce功能與架構(gòu)Y RN的資源管理和任務(wù)調(diào)度MR開發(fā)接口介紹e ample詳解MapReduce介紹MapReduce基于發(fā)布的分布式計(jì)算框架MapReduce設(shè)計(jì)開發(fā),用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算,它的特點(diǎn)如下:易于編程:程序員僅需描述需要做什么, 而具體怎么去做就交由系統(tǒng)的執(zhí)行框架處理。良好的擴(kuò)展性:可以通過添加機(jī)器以達(dá)到擴(kuò)展集群能力的目的。高容錯(cuò)性:通過計(jì)算遷移或者數(shù)據(jù)遷移等策略提高集群的可用性與容錯(cuò)性。MapRedcue適合做什么大規(guī)模數(shù)據(jù)集的離線批處理計(jì)算任務(wù)分而治之,子任務(wù)相對(duì)獨(dú)
2、立MapRedcue不適合做什么實(shí)時(shí)的交互式計(jì)算,要求快速響應(yīng),低延遲,比如SQL查詢流式計(jì)算、實(shí)時(shí)分析,比如點(diǎn)擊計(jì)算等 子任務(wù)之間相互依賴(迭代計(jì)算)誰(shuí)在使用MapReduceMapReduce在Hadoop中位置MapReduce:HiveHBaseMap/ReduceDFS是MapReduce的開源實(shí)現(xiàn)。是對(duì)并行計(jì)算的封裝,使用戶通過一些簡(jiǎn)單的邏輯即可完成復(fù)雜的并行計(jì)算。將一個(gè)大的運(yùn)算任務(wù)分解到集群每個(gè)節(jié)點(diǎn)上,充分運(yùn)用集群資源,縮短運(yùn)行時(shí)間。YARN:Yet Another Resource Negotiator(另一種資源協(xié)商),是一個(gè)資源調(diào)度框架YarnYarn是Hadoop2.0中
3、的資源管理系統(tǒng),它是一個(gè)通用的資源管理模塊,可為 各類應(yīng)用程序進(jìn)行資源管理和調(diào)度Yarn是輕量級(jí)彈性計(jì)算,除了MapReduce框架,還可以支持其他框架,比如Spark、Storm等;多種框架管理,共享集群資源:資源利用率高運(yùn)維成本低數(shù)據(jù)共享方便MapReduceStormSPark其他(離線處理)(處理) (迭代計(jì)算)Yarn(集群資源管理)HDFS(分布式)Yarn的產(chǎn)生 (MRv1與MRv2架構(gòu)對(duì)比)下一代MapReduce將JobTracker的兩個(gè)主要功能(即資源管理與作業(yè)控制)分拆成兩個(gè)獨(dú)立的進(jìn)程,而且每個(gè)作業(yè)管理控制進(jìn)程只負(fù)責(zé)管理一個(gè)作業(yè)從資源管理角度看,下一代MapReduce
4、框架實(shí)際上衍生出了一個(gè)資源管理Yarn,它使得Hadoop不再局限于僅支持管理和調(diào)度MapReduce一種計(jì)算模型,而是可無(wú)限融入多種計(jì)算框架,且對(duì)這些框架進(jìn)行MRv1與Yarn對(duì)比相比與MRv1,Yarn的優(yōu)勢(shì)更快地MapReduce計(jì)算YARN利用異步模型對(duì)MapReduce框架的一些關(guān)鍵邏輯結(jié)構(gòu)進(jìn)行了重寫,具有更快地計(jì)算速度。YARN還具有向后兼容性,用戶在MRv1上運(yùn)行的作業(yè),無(wú)需任何修改即可運(yùn)行在YARN之上對(duì)多框架的支持與MRv1相比,YARN不再是一個(gè)單純的計(jì)算框架,而是一個(gè)框架管理器,用戶可以將各種各樣的計(jì)算框架移植到Y(jié)ARN之上,由YARN進(jìn)行管理和資源分配框架升級(jí)更容易在Y
5、ARN中,各種計(jì)算框架不再是作為一個(gè)服務(wù)部署到集群的各個(gè)節(jié)點(diǎn)上(比如MapReduce框架,不再需要部署 JobTracler、TaskTracker等服務(wù)),而是被封裝成一個(gè)用戶程序庫(kù)(lib)存放在客戶端,當(dāng)需要對(duì)計(jì)算框架進(jìn)行升級(jí)時(shí),只需升級(jí)用戶程序庫(kù)即可MRv1的局限性擴(kuò)展性差JobTracker同時(shí)兼?zhèn)淞速Y源管理和作業(yè)控制兩個(gè)功能,這成為系統(tǒng)的一個(gè)最大瓶頸,嚴(yán)重制約了Hadoop集群擴(kuò)展性可靠性差MRV1采用了master/slaver結(jié)構(gòu),其中,master存在單點(diǎn)故障問題,一旦它出現(xiàn)故障將導(dǎo)致整個(gè)集群不可用資源利用率低MRv1采用了基于槽位的資源分配模型,槽位是一種粗粒度的資源劃分
6、,通常一個(gè)任務(wù)不會(huì)用完槽位對(duì)應(yīng)的資源,且其他任務(wù)也無(wú)法使用這些空閑資源無(wú)法支持多種技術(shù)框架MRv1不能支持多種計(jì)算框架并存,例如內(nèi)存計(jì)算框、流式計(jì)算框架和迭代式集散框架等Yarn的架構(gòu)ResourceManager負(fù)責(zé)集群資源管理和計(jì)算框架管理,主要包括調(diào)度與應(yīng)用程序管理調(diào)度器:根據(jù)容量、隊(duì)列等限制條件,將系統(tǒng)中的資源分配給各個(gè)正在運(yùn)行的應(yīng)用程序應(yīng)用程序管理器負(fù)責(zé)管理整個(gè)系統(tǒng)中的所有應(yīng)用程序,包括應(yīng)用程序提交,與調(diào)度器協(xié)商資源,啟動(dòng)并狀態(tài)NodeManagerAppMaster運(yùn)行節(jié)點(diǎn)資源管理和容器管理,RM是系統(tǒng)中將資源分配給各個(gè)應(yīng)用的最終決策者。AppMaster各種計(jì)算框架的實(shí)現(xiàn)(例如M
7、RAppMaster)向 ResourceManager申請(qǐng)資源,通知NodeManager管理相應(yīng)的資源Container是Yarn中的資源抽象,它封裝了某個(gè)節(jié)點(diǎn)上的資源,如內(nèi)存、CPU、磁盤、網(wǎng)絡(luò)等度Yarn的架構(gòu)MR V2 架構(gòu)(物理架構(gòu))基于YARN框架下的MR實(shí)現(xiàn)MR V2 架構(gòu)(邏輯架構(gòu))MR AppS:使用MR的外部系統(tǒng),如Hive。外部系統(tǒng)需要JobCnt開發(fā)包。YARNApp:基于YARN框架上的應(yīng)用,如MR應(yīng)用。YARNService:基于YARN框架集群服務(wù),主要提供資源管理服務(wù)。o b j e c t M R V 2 _ L o g i c a l _ A r c h
8、i t e c t u r eMR AppSH i v eJ o b Cn tB r o w s e rA p p M g rA p p A t t e m p t M g rA p p S c h e d u l e rW e b P r o x yN o d e M g rC o n t a i n e r M g rC o n t a i n e r L a u n c hL i n u xJ a v aD F SR M - H AW e b U I S e r v i c eY a r n R P C S e r v i c eS t r e a m i n gD i s t r i
9、b u t e C a c h eJ o b M g rM a p T a s k R u n n e rR e d u c e T a s k R u n n e rJ o b S c h e d u l e rS h u f f l eJ o b H i s t o r yY a r n R P C Cn tM R A p p H AC o u n t e rD i s t r i b u t e SMRAppMaster架構(gòu)圖 - MR所有的功能都集中在MRAppMasterAMRMProtocolContainerAllocatorContainerLauncherContainerM
10、anagerMap TaskNode ManagerReduce TaskNode ManagerReduce TaskMap TaskTaskAttemptListenerTaskHeartbeandlerTask CleanerJobToken SecretManagerRecovery ServiceSpeculatorMRCntServiceResource ManagerCntMRAppMaster功能說明ContainerAllocator與ResourceManager通信,為作業(yè)申請(qǐng)資源。TaskCleaner失敗任務(wù)或者被殺死任務(wù)產(chǎn)生的結(jié)果,它結(jié)果。ContainerLaun
11、cher了一個(gè)線程池,異步刪除這些任務(wù)產(chǎn)生的與NodeManager通信,要求其啟動(dòng)一個(gè)Container。TaskAttemptListener管理各個(gè)任務(wù)的心跳信息,如果一個(gè)任務(wù)一段時(shí)間從系統(tǒng)中移除。Recovery Service匯報(bào)心跳,則認(rèn)為它死掉了,會(huì)將其當(dāng)一個(gè)MRAppMaster故障后,它將被調(diào)度到另外一個(gè)節(jié)點(diǎn)上重新運(yùn)行,為了避免重新計(jì)算,MRAppMaster首先會(huì)從HDFS上 Speculator上次運(yùn)行產(chǎn)生的運(yùn)行日志,并恢復(fù)作業(yè)運(yùn)行狀態(tài)。完成推測(cè)執(zhí)行功能。當(dāng)一個(gè)任務(wù)運(yùn)行速度明顯慢于其他任務(wù)時(shí),Speculator會(huì)為該任務(wù)啟動(dòng)一個(gè)備份任務(wù),讓其同慢任務(wù)一同處理同一份數(shù)據(jù),
12、誰(shuí)先計(jì)算完成則將誰(shuí)的結(jié)果作為最終結(jié)果,另一個(gè)任務(wù)將被殺掉。該機(jī)制可有效防止“拖后腿”任務(wù)拖慢整個(gè)作業(yè)的執(zhí)行進(jìn)度。1234MapReduce功能與架構(gòu)Y RN的資源管理和任務(wù)調(diào)度MR開發(fā)接口介紹e ample詳解資源表示模型每個(gè)節(jié)點(diǎn)由多個(gè)固定內(nèi)存大小(512MB)的分配組成。Container可以分配該內(nèi)存整數(shù)倍大小。每個(gè)節(jié)點(diǎn)有多個(gè)核,Container可以分配1個(gè)或多個(gè)核一個(gè)Container同時(shí)包含內(nèi)存與CPU兩種資源Pmem-ratio為物理內(nèi)存對(duì)應(yīng)最多可使用的虛擬內(nèi)存總量Pcores-ratio為可分配的虛擬CPU個(gè)數(shù)資源分配模型1、調(diào)度器一群隊(duì)列的信息。用戶可以向一個(gè)或者多個(gè)隊(duì)列提交應(yīng)
13、用。每次NM心跳的時(shí)候,調(diào)度器根據(jù)一定的規(guī)則選擇一個(gè)隊(duì)列,再在隊(duì)列上選擇一個(gè)應(yīng)用,嘗試在這個(gè)應(yīng)用上分配資源。2、調(diào)度器會(huì)優(yōu)先匹配本地資源的申請(qǐng)請(qǐng)求,其次是同機(jī)架的,最后是任意機(jī)器的。本地優(yōu)化YARN所運(yùn)行的應(yīng)用的絕大部分輸入都是hdfs上的文件。而hdfs上的文件的是分塊多副本的。假設(shè)文件系統(tǒng)的備份因子是3。則每一個(gè)文件塊都會(huì)在3個(gè)機(jī)器上有副本。在YARN運(yùn)行應(yīng)用的時(shí)候,AM會(huì)將輸入文件進(jìn)行切割,然后,AM向RM申請(qǐng)的container來(lái)運(yùn)行task來(lái)處理這些被切割的文件段。假如輸入文件在ABC三個(gè)機(jī)器上有備份,那如果AM申請(qǐng)到的container在這3個(gè)機(jī)器上的其中一個(gè),那這個(gè)task就無(wú)須
14、從其它機(jī)器上傳輸要處理的文件段,節(jié)省網(wǎng)絡(luò)傳輸。這就是Hadoop的本地優(yōu)化。YARN的實(shí)現(xiàn)本地優(yōu)化的方式是AM給RM提交的資源申請(qǐng)的時(shí)候,會(huì)同時(shí)發(fā)送本地申請(qǐng)(申請(qǐng)本節(jié)點(diǎn)上的container),機(jī)架申請(qǐng)(申請(qǐng)同機(jī)架上其他節(jié)點(diǎn)的 container)和任意申請(qǐng)(申請(qǐng)其他節(jié)點(diǎn)上的container)。然后,RM的匹配這些資源申請(qǐng)的時(shí)候,會(huì)先匹配本地申請(qǐng),再匹配機(jī)架申請(qǐng),最后才匹配任意申請(qǐng)。延遲調(diào)度調(diào)度器在匹配本地申請(qǐng)失敗的時(shí)候,匹配機(jī)架申請(qǐng)或者任意申請(qǐng)成功的時(shí)候,允許略過這次的資源分配,直到達(dá)到延遲調(diào)度次數(shù)上限。調(diào)度器比較比較項(xiàng)FifoSchedulerCapacityScheduler設(shè)計(jì)目的最
15、簡(jiǎn)單的調(diào)度器,易于理解和上手多用戶的情況下,最大化集群的吞吐和利用率樹狀組織隊(duì)列。無(wú)論父隊(duì)列還是子隊(duì)列都會(huì)有資源參數(shù)限制,子隊(duì)列的資源隊(duì)列組織方式單隊(duì)列限制計(jì)算是基于父隊(duì)列的。應(yīng)用提交到葉子隊(duì)列。父子隊(duì)列之間有容量關(guān)系。每個(gè)隊(duì)列限制了資源使用量,全局最大資源使用資源限制無(wú)量,最大活躍應(yīng)用數(shù)量等。隊(duì)列ACL限制可以限制應(yīng)用提交權(quán)限可以限制應(yīng)用提交權(quán)限和隊(duì)列開關(guān)權(quán)限,父子隊(duì)列間的ACL會(huì)繼承。隊(duì)列排序算法無(wú)按照隊(duì)列的資源使用量最小的優(yōu)先應(yīng)用選擇算法先進(jìn)先出先進(jìn)先出本地優(yōu)先分配支持支持延遲調(diào)度不支持支持資源搶占不支持不支持容量調(diào)度器的特點(diǎn)容量保證:管理員可為每個(gè)隊(duì)列設(shè)置資源最低保證和資源使用上限,而
16、所有提交到該隊(duì)列的應(yīng)用程序共享這些資源。靈活性:如果一個(gè)隊(duì)列中的資源有剩余,可以暫時(shí)共享給那些需要資源的隊(duì)列,而一旦該隊(duì)列有新的應(yīng)用程序提交,則其他隊(duì)列該隊(duì)列。支持優(yōu)先級(jí):隊(duì)列支持任務(wù)優(yōu)先級(jí)調(diào)度(默認(rèn)是FIFO)的資源會(huì)歸還給多重租賃:支持多用戶共享集群和多應(yīng)用程序同時(shí)運(yùn)行。為防止單個(gè)應(yīng)用程序、用戶或者隊(duì)列獨(dú)占集群資源,管理員可為之增加多重約束(比如單個(gè)因不該用程序同時(shí)運(yùn)行的任務(wù)數(shù)等)。動(dòng)態(tài)更新配置文件:管理員可根據(jù)需要?jiǎng)討B(tài)修改各種配置參數(shù),以實(shí)現(xiàn)在線集群管理。容量調(diào)度器的任務(wù)選擇調(diào)度時(shí),首先按以下策略選擇一個(gè)合適隊(duì)列:資源利用量最低的隊(duì)列優(yōu)先,比如同級(jí)的兩個(gè)隊(duì)列Q1和Q2,它們的容量均為30
17、,而Q1已使用10,Q2已使用12,則會(huì)優(yōu)先將資源分配給Q1最小隊(duì)列層級(jí)優(yōu)先,例如:QueueA與QueueB.childQueueB,則QueueA優(yōu)先;資源回收請(qǐng)求隊(duì)列優(yōu)先。然后按以下策略選擇該隊(duì)列中一個(gè)任務(wù):按照任務(wù)優(yōu)先級(jí)和提交時(shí)間順序選擇,同時(shí)考慮用戶資源量限制和內(nèi)存限制。對(duì)于同優(yōu)先級(jí)的任務(wù),選擇算法參見“DRF(主資源公平調(diào)度算法)”章節(jié)容量調(diào)度器的優(yōu)缺點(diǎn)優(yōu)點(diǎn):支持多任務(wù)并行執(zhí)行,提高資源利用率動(dòng)態(tài)調(diào)整資源分配,提高任務(wù)執(zhí)行效率缺點(diǎn):隊(duì)列設(shè)置和隊(duì)列選擇無(wú)法自動(dòng)進(jìn)行,用戶需要了解大量系統(tǒng)信息,才能設(shè)置和選擇隊(duì)列。隊(duì)列資源限制隊(duì)列的資源容量(百分比) 總共有default、QueueA、
18、 QueueB、QueueC、QueueD五個(gè)隊(duì)列,每個(gè)隊(duì)列都有一個(gè)隊(duì)列 名.capacity配置Default隊(duì)列容量為整個(gè)集群資源的20%QueueA隊(duì)列容量為整個(gè)集群資源的40%QueueB隊(duì)列容量為整個(gè)集群資源的30%并且5個(gè)隊(duì)列的容量配置之和為100%隊(duì)列資源限制共享空閑資源隊(duì)列的資源使用上限(百分比),由于存在資源共享,因此一個(gè)隊(duì)列使用的資源可能超過其容量(QueueA.capacity),而最多使用資源量可通過該參數(shù)限制。如果某個(gè)隊(duì)列任務(wù)較少,可將剩余資源共享給其他隊(duì)列,如果QueueA的um-capacity配置為100,假設(shè)當(dāng)前只有QueueA在運(yùn)行任務(wù),理論上QueueA可
19、以占用整個(gè)集群100%的資源。用戶限制每個(gè)用戶最低資源保障(百分比)任何時(shí)刻,一個(gè)隊(duì)列中每個(gè)用戶可使用的資源量均有一定的限制,當(dāng)一個(gè)隊(duì)列中同時(shí)運(yùn)行多個(gè)用戶的任務(wù)時(shí),每個(gè)用戶的可使用資源量在一個(gè)最小值與最大值之間浮動(dòng),其中,最小值取決于正在運(yùn)行的任務(wù)數(shù)目,而最大值則有minimum-user- limit-percent決定。以上圖為例,QueueA的minimum-user-limit-percent為25,當(dāng)兩個(gè)用戶向該隊(duì)列提交任務(wù)時(shí),每個(gè)用戶可使用的資源量過50%;如果三個(gè)用戶提交任務(wù),則每個(gè)用戶可使用資源量過33%;如果四個(gè)或者用戶提交任務(wù),則每個(gè)用戶可使用資源量過25%。用戶限制每個(gè)用
20、戶最多可使用的資源量(百分比)以上圖為例,在任何時(shí)刻,每個(gè)用戶使用的資源量功能可以防止單個(gè)用戶獨(dú)占隊(duì)列的資源。過該隊(duì)列容量的10%,此任務(wù)限制AppMaster最大可使用的資源量(百分比)此參數(shù)控制并發(fā)運(yùn)行的應(yīng)用程序數(shù)量,如上圖配置,表示每個(gè)任務(wù)的AppMaster最大能使用集群10%的資源。最大活躍任務(wù)數(shù)整個(gè)集群中允許的最大活躍任務(wù)數(shù),包括運(yùn)行或掛起狀態(tài)的所有任務(wù),每個(gè)隊(duì)列允許的最大任務(wù)數(shù)則由隊(duì)列的容量與用戶的最大容量(user-limit-factor)共同決定,當(dāng)提交的任務(wù)申請(qǐng)數(shù)據(jù)達(dá)到限制以后,新提交的任務(wù)將會(huì)被。不同隊(duì)列的任務(wù)優(yōu)先使用本隊(duì)列資源CapacityScheduler將整個(gè)系
21、統(tǒng)資源分成若干隊(duì)列,實(shí)際上相當(dāng)于將整個(gè)Hadoop集群邏輯上劃分為若干個(gè)用用相對(duì)獨(dú)立資源的子集群,不同隊(duì)列之間是相互的,所以分配在不同隊(duì)列中的兩個(gè)任務(wù),無(wú)論其優(yōu)先級(jí)如何設(shè)置是互不干擾的。同一隊(duì)列中的任務(wù)優(yōu)先級(jí)優(yōu)先級(jí)只針對(duì)同一個(gè)隊(duì)列中的不同任務(wù);相同隊(duì)列中,先后提交兩個(gè)執(zhí)行時(shí)間較長(zhǎng)的任務(wù),先提低優(yōu)先級(jí)的任務(wù),后提高優(yōu)先級(jí)的任務(wù),后提交的高優(yōu)先級(jí)的任務(wù)先執(zhí)行完。例如,一個(gè)任務(wù)分解成了多個(gè)map子任務(wù),先提交低優(yōu)先級(jí)的任務(wù),在執(zhí)行了50%的map子任務(wù)時(shí)有高優(yōu)先級(jí)的任務(wù)提交到隊(duì)列,隊(duì)列的資源會(huì)優(yōu)先分配給高優(yōu)先級(jí)的任務(wù),這樣低優(yōu)先級(jí)任務(wù)的map子任務(wù)的完成率就停在50%,等到高優(yōu)先級(jí)的任務(wù)執(zhí)行完成之后
22、,才繼續(xù)執(zhí)行余下50%的map任務(wù)。DRF(主資源公平調(diào)度算法)DRF(Dominant Resource Fairness)是一種支持多資源的max-min fair 資源分配機(jī)制,其中max表示maxCPU,mem,而min表示minuser1,user2,=maxCPU1,mem1, maxCPU2,mem2, DRF被證明非常適合應(yīng)用于多資源和復(fù)雜需求的環(huán)境中,因此被越來(lái)越多的系統(tǒng)采用,包括Apache Mesos(集群管理器)DRF算法的公平滿足四個(gè)特性。共享性(Sharing Incentive),即DRF確保各用戶平均占用資源;真實(shí)性(Strategy-Proofness),即每
23、個(gè)用戶都不能通過來(lái)獲得資源;效率性(Pareto-Efficient),即每個(gè)用戶都不能在未減少其他用戶占有的資源的情況下增加自己的資源份額;非搶占性(Envy-Free),即每個(gè)用戶都不能搶占其他用戶的資源。DRF(主資源公平調(diào)度算法)示例舉例說明,假設(shè)系統(tǒng)有9 CPUs 和18 GB RAM,有兩個(gè)用戶(或者框架)分別運(yùn)行了兩種任務(wù),需要的資源量分別為 和 。對(duì)于用戶A,每個(gè)任務(wù)要消耗總CPU的1/9和總內(nèi)存的2/9,因而A的支配性資源為內(nèi)存對(duì)于用戶B,每個(gè)任務(wù)要消耗總CPU的1/3和總內(nèi)存的1/18,因而B的支配性資源為CPU。DRF將均衡所有用戶的支配性資源(最大化所有用戶的主資源)A
24、獲取的資源量為:,可運(yùn)行3個(gè)task;獲取了2/3的RAMs B獲取的資源量為,可運(yùn)行2個(gè)task;獲取了2/3的CPUs這樣分配,每個(gè)用戶獲取了相同比例的支配性資源DRF(主資源公平調(diào)度算法)示例DRF算法的一個(gè)可能的調(diào)度序列如下圖所示:1234MapReduce功能與架構(gòu)Y RN的資源管理和任務(wù)調(diào)度MR開發(fā)接口介紹e ample詳解MR開發(fā)接介紹序號(hào)方法說明1Job(Configuration conf, String jobName),Job(Configuration conf)新建一個(gè)MapReduce客戶端,用于配置作業(yè)屬性,提交作業(yè)。2setMapperClass(Class c
25、ls)接口,指定MapReduce作業(yè)的Mapper類,默認(rèn)為空。也可以在“mapred-site.xml”中配置“mapreduce.job.map.class”項(xiàng)。3setReducerClass(Class cls)接口,指定MapReduce作業(yè)的Reducer類,默認(rèn)為空。也可以在“mapred-site.xml”中配置“mapreduce.job.reduce.class”項(xiàng)4binerClass(Class cls)指定作業(yè)的biner類,默認(rèn)為空。也可以在“mapred-site.xml”中配置“bine.class”項(xiàng)。需要保證reduce的輸入輸出key,value類型相同
26、才可以使用,謹(jǐn)慎使用。5setInputFormatClass(Class cls)接口,指定MapReduce作業(yè)的InputFormat類,默認(rèn)為TextInputFormat。也可以在“mapred-site.xml”中配置“mapreduce.job.inputformat.class”項(xiàng)。該設(shè)置用來(lái)指定處理不同格式的數(shù)據(jù)時(shí)需要的InputFormat類,用來(lái)數(shù)據(jù),切分?jǐn)?shù)據(jù)塊6setJarByClass(Class cls)接口,指定執(zhí)行類所在的jar包本地位置。java通過class文件找到執(zhí)行jar包,該jar上傳到HDFS。7setJar(String jar)指定執(zhí)行類所在的j
27、ar包本地位置。直接設(shè)置執(zhí)行jar包所在位置,該jar上傳到 HDFS。與setJarByClass(Class cls)選擇使用一個(gè)。也可以在“mapred- site.xml”中配置“mapreduce.job.jar”項(xiàng)口MR開發(fā)接介紹序號(hào)方法說明8setOutputFormat(Class theClass)接口,指定MapReduce作業(yè)的OutputFormat類,默認(rèn)為TextOutputFormat。也可以在 “mapred-site.xml”中配置“mapred.output.format.class”項(xiàng),指定輸出結(jié)果的數(shù)據(jù)格式。例如默認(rèn)的TextOutputFormat把每
28、條key,value寫為文本行。通常場(chǎng)景不配置特定的OutputFormat。9setOutputKeyClass(Class theClass)接口,指定MapReduce作業(yè)的輸出key的類型,也可以在“mapred-site.xml”中配置 “mapreduce.job.output.key.class”項(xiàng)10setOutputValueClass(Class theClass)接口,指定MapReduce作業(yè)的輸出value的類型,也可以在“mapred-site.xml”中配置“mapreduce.job.output.value.class”項(xiàng)11setPartitionerCla
29、ss(Class theClass)指定MapReduce作業(yè)的Partitioner類。也可以在“mapred-site.xml”中配置 “mapred.partitioner.class”項(xiàng)。該方法用來(lái)分配map的輸出結(jié)果到哪個(gè)reduce類,默認(rèn)使用HashPartitioner,均勻分配map的每條鍵值對(duì)。例如在hbase應(yīng)用中,不同的鍵值對(duì)應(yīng)的region不同,這就需要設(shè)定特殊的partitioner類分配map的輸出結(jié)果。12pressorClass(Clas s codecClass)指定MapReduce作業(yè)的map任務(wù)的輸出結(jié)果壓縮類,默認(rèn)不使用壓縮。也可以在“mapred-
30、site.xml”中配置“mapredpress”和“mapredpress.codec”項(xiàng)。當(dāng)map的輸出數(shù)據(jù)大,減少網(wǎng)絡(luò)壓力,使用壓縮傳輸中間數(shù)據(jù)。13setJobPriority(JobPriority prio)指定MapReduce作業(yè)的優(yōu)先級(jí),共有5個(gè)優(yōu)先級(jí)別,VERY_HIGH,HIGH,NORMAL,LOW,VERY_LOW,默認(rèn)級(jí)別為NORMAL。也可以在“mapred-site.xml”中配置 “mapreduce.job.priority”項(xiàng)??贛R開發(fā)接介紹說明:開發(fā)接口類:.apache.hadoop.mapreduce.Job上面僅介紹了一些常用的接口。序號(hào)方法說明14setQueueName(String queueName)指定MapReduce作業(yè)的提交隊(duì)列。默認(rèn)使用default隊(duì)列。也可以在“mapred-site.xml”中配置“mapreduce.job.queuename”項(xiàng)。15setNumMapTasks(n)接口,指定MapReduce作業(yè)的map個(gè)數(shù)。也可以在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)托具市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國(guó)彩印塑料編織袋市場(chǎng)調(diào)查研究報(bào)告
- 2025至2030年中國(guó)雙吊卷板吊具數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年度個(gè)人無(wú)人機(jī)銷售與租賃合同3篇
- 二零二五年度個(gè)人二手車交易車輛交易稅收籌劃協(xié)議3篇
- 二零二五版物業(yè)高空作業(yè)安全設(shè)備維護(hù)與檢查合同3篇
- 二零二五版?zhèn)D(zhuǎn)股投資合作協(xié)議書(股權(quán)投資)6篇
- 二零二五版消防工程維保與消防設(shè)備安裝、維保一體化合同3篇
- 2025版環(huán)保產(chǎn)業(yè)園區(qū)環(huán)境治理與改善合同3篇
- 二零二五年度個(gè)人資產(chǎn)管理合同模板詳述4篇
- 《汽車車身電器維修工作頁(yè)》學(xué)習(xí)任務(wù)3 起動(dòng)機(jī)不工作故障的檢修
- 六年級(jí)上冊(cè)數(shù)學(xué)課件-第五單元 數(shù)據(jù)處理 北師大版
- YY/T 1496-2016紅光治療設(shè)備
- 鄭州小吃詳細(xì)地點(diǎn)
- 上海高考英語(yǔ)詞匯手冊(cè)
- 2021年江蘇省淮安市淮陰中學(xué)高一政治下學(xué)期期末試題含解析
- 2021年道路交通安全法期末考試試題含答案
- 自帶藥物治療告知書
- 建筑制圖與陰影透視-第3版-課件12
- 2023年最新的校長(zhǎng)給教師春節(jié)祝福語(yǔ)
- 吞咽解剖和生理研究
評(píng)論
0/150
提交評(píng)論