• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Hadoop集群中作業(yè)調(diào)度研究

      2015-04-30 12:53:40燕明磊
      軟件導(dǎo)刊 2015年4期

      燕明磊

      摘要摘要:Hadoop是目前應(yīng)用最廣泛的分布式框架,作業(yè)調(diào)度是其重要環(huán)節(jié),它直接關(guān)系到集群的性能與資源利用率。研究了作業(yè)調(diào)度流程、作業(yè)調(diào)度策略模式,對(duì)Hadoop自帶的3種調(diào)度器的設(shè)計(jì)要點(diǎn)與配置方法進(jìn)行了探討。

      關(guān)鍵詞關(guān)鍵詞:Hadoop; 作業(yè)調(diào)度; 調(diào)度器

      DOIDOI:10.11907/rjdk.1431066

      中圖分類號(hào):TP301

      文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2015)004000102

      0引言

      隨著云計(jì)算的興起和大數(shù)據(jù)[1]時(shí)代的到來,傳統(tǒng)的數(shù)據(jù)處理方法在系統(tǒng)擴(kuò)展性、復(fù)雜應(yīng)用適用性、海量數(shù)據(jù)處理速度與存儲(chǔ)等方面均遇到了很大的瓶頸問題,已經(jīng)越來越難以適應(yīng)新應(yīng)用的要求,而這些瓶頸問題正是分布式系統(tǒng)所擅長(zhǎng)的。Apache Hadoop[2]是一個(gè)開源、高效的分布式平臺(tái),它運(yùn)用一切可以利用的資源,以“云”的形式解決大型復(fù)雜計(jì)算問題,同時(shí)還可以滿足每個(gè)用戶的需求。Hadoop是基于Java語言的分布式密集數(shù)據(jù)處理和數(shù)據(jù)分析軟件框架,是一種低成本處理的大數(shù)據(jù)平臺(tái)。

      1Hadoop平臺(tái)

      Hadoop有兩大核心框架:分布式文件系統(tǒng)HDFS和分布式計(jì)算框架Map/Reduce。HDFS是一個(gè)高可靠、透明、支持并發(fā)與容錯(cuò)的文件系統(tǒng),基于主從結(jié)構(gòu)設(shè)計(jì),由NameNode和DataNode共同完成,其中數(shù)據(jù)以數(shù)據(jù)塊(block)的形式存儲(chǔ),NameNode主要負(fù)責(zé)數(shù)據(jù)塊元數(shù)據(jù)的存儲(chǔ)及數(shù)據(jù)塊的動(dòng)態(tài)信息,DataNode負(fù)責(zé)數(shù)據(jù)塊的存儲(chǔ)。HDFS是Map/Reduce的存儲(chǔ)基礎(chǔ)。Map/Reduce[3]是并行處理大數(shù)據(jù)的計(jì)算框架,簡(jiǎn)單說就是任務(wù)的合成與分解。Hadoop的Map/Reduce也是一種主從結(jié)構(gòu)設(shè)計(jì),由JobTracker和TaskTracker兩部分組成。JobTracker是主服務(wù)節(jié)點(diǎn),其任務(wù)之一是負(fù)責(zé)作業(yè)的切分與任務(wù)的調(diào)度分配;TaskTracker是從節(jié)點(diǎn),主要負(fù)責(zé)任務(wù)的執(zhí)行。

      2Hadoop作業(yè)調(diào)度

      JobTracker服務(wù)于整個(gè)Map/Reduce計(jì)算框架,負(fù)責(zé)整個(gè)集群的作業(yè)控制和資源管理。作業(yè)控制主要是監(jiān)控作業(yè)的狀態(tài),在任務(wù)調(diào)度時(shí)提供調(diào)度依據(jù)。作業(yè)調(diào)度是影響Hadoop集群性能的重要方面,直接決定了作業(yè)執(zhí)行效率和集群資源利用率。作業(yè)調(diào)度由JobTracker節(jié)點(diǎn)上任務(wù)調(diào)度模塊完成,調(diào)度流程見圖1。

      Hadoop作業(yè)調(diào)度采用三級(jí)策略模式[4]。Hadoop將作業(yè)執(zhí)行過程分為Map階段和Reduce階段,分別對(duì)應(yīng)Map任務(wù)和Reduce任務(wù)。這些任務(wù)被分配在集群節(jié)點(diǎn)的任務(wù)槽(slot)上執(zhí)行,任務(wù)槽是節(jié)點(diǎn)資源的一種簡(jiǎn)化表示形式,每個(gè)節(jié)點(diǎn)根據(jù)計(jì)算資源配置有一系列的Map槽和Reduce槽,典型的配置是節(jié)點(diǎn)的每個(gè)CPU配置一個(gè)槽,調(diào)度器的功能就是為任何空閑的slot分配任務(wù)。所有調(diào)度器采用三級(jí)策略,即為空閑的slot依次選取隊(duì)列、作業(yè)、任務(wù)。

      3Hadoop調(diào)度方法

      Hadoop有3種調(diào)度器:批處理調(diào)度器FIFO及兩個(gè)多用戶調(diào)度器Fair Scheduler和Capacity Scheduler,本文重點(diǎn)研究這3種調(diào)度器。

      3.1FIFO調(diào)度

      FIFO是默認(rèn)的調(diào)度方式,該調(diào)度將所有作業(yè)都提交到JobQueue隊(duì)列, JobTracker先按照作業(yè)優(yōu)先級(jí)高低,再按照提交時(shí)間的先后順序執(zhí)行作業(yè)。Hadoop中只有一個(gè)作業(yè)隊(duì)列,被提交的作業(yè)按照先后順序在作業(yè)隊(duì)列中排隊(duì),新來的作業(yè)排在隊(duì)尾。一個(gè)作業(yè)運(yùn)行完后,總是從隊(duì)首進(jìn)行下一個(gè)作業(yè)。這種調(diào)度策略的優(yōu)點(diǎn)是簡(jiǎn)單、易于實(shí)現(xiàn),減輕了Jobtracker的負(fù)擔(dān)。缺點(diǎn)是對(duì)所有作業(yè)都一視同仁,沒有考慮到作業(yè)的緊迫程度,因而對(duì)小作業(yè)的運(yùn)行不利。

      3.2Fair調(diào)度

      Fair調(diào)度適用于多用戶情形。算法設(shè)計(jì)思想是當(dāng)集群中多個(gè)用戶提交作業(yè)時(shí),為了保證公平性,調(diào)度器為每個(gè)用戶或組分配一個(gè)資源池,資源池里的每個(gè)作業(yè)都會(huì)按照其作業(yè)權(quán)重分配最小的資源共享量,以保證每個(gè)作業(yè)都能得到執(zhí)行。當(dāng)集群中的某個(gè)節(jié)點(diǎn)出現(xiàn)空閑的slot時(shí),則選擇已獲得的資源量和理論上應(yīng)獲得的資源量的差值最大的作業(yè)來執(zhí)行,以保證公平。與FIFO相比,它支持多用戶多隊(duì)列、資源公平共享、保證最小共享量、支持時(shí)間片搶占、限制作業(yè)并發(fā)量、防止中間數(shù)據(jù)塞滿硬盤、動(dòng)態(tài)調(diào)整各個(gè)資源池的資源量等,以保證調(diào)度的公平。

      3.3Capacity調(diào)度

      Capacity調(diào)度同樣支持多用戶。其設(shè)計(jì)思想是支持多個(gè)隊(duì)列,每個(gè)隊(duì)列可配置一定的資源量,采用FIFO調(diào)度策略。為了防止同一用戶的作業(yè)獨(dú)占隊(duì)列資源,該調(diào)度器會(huì)對(duì)同一用戶提交的作業(yè)所占資源量進(jìn)行限定。調(diào)度時(shí),首先計(jì)算每個(gè)隊(duì)列中正在運(yùn)行的任務(wù)數(shù)與其應(yīng)該分得的計(jì)算資源比值,選擇該比值最小的隊(duì)列;然后按照作業(yè)優(yōu)先級(jí)和提交時(shí)間順序選擇,同時(shí)考慮用戶資源量限制和內(nèi)存限制。該調(diào)度器的特點(diǎn)是保證計(jì)算能力、資源分配靈活、支持優(yōu)先級(jí)、支持多重租賃、支持資源密集型作業(yè),允許作業(yè)使用的資源量高于默認(rèn)值。

      4Hadoop調(diào)度器設(shè)計(jì)

      隨著各種應(yīng)用需求的提升,已有的調(diào)度器已很難適應(yīng)需求的變化,因此調(diào)度器設(shè)計(jì)也要升級(jí)。Hadoop中任務(wù)調(diào)度器被設(shè)計(jì)成一個(gè)可插拔的模塊,設(shè)計(jì)從三方面考慮:①編寫JobInProgressListener;②編寫調(diào)度器類,繼承抽象類TaskScheduler;③配置并啟用Hadoop調(diào)度器。

      編寫JobInProgressListener抽象類:

      abstract Class JobInProgressListener throws IOException {

      public abstract void JobAdded(JobInProgress job);

      public abstract void JobRemoved (JobInProgress job);

      public abstract void JobUpdated(JobChangeEvent event);

      }

      配置并啟用Hadoop調(diào)度器:

      mapred.jobtracker.taskScheduler

      org.apache.hadoop.mapred.MyScheduler

      5結(jié)語

      Hadoop作業(yè)調(diào)度的研究對(duì)于集群性能的提升具有重要意義。由于Hadoop使用了單JobTracker進(jìn)行作業(yè)調(diào)度,對(duì)于Hadoop MapReduce計(jì)算架構(gòu)而言,提交的大量作業(yè)以及大規(guī)模的TaskTracker分布必將給JobTracker帶來巨大的工作壓力,因此運(yùn)行的調(diào)度算法一定不能過于復(fù)雜。此外單JobTracker直接影響了Hadoop集群的可用性,一旦JobTracker失效或者宕機(jī),那么整個(gè)集群將崩潰。因此,今后的Hadoop集群作業(yè)調(diào)度可能由多個(gè)JobTracker協(xié)同完成,相關(guān)的JobTracker分布式作業(yè)調(diào)度和資源管理算法將是下一個(gè)研究重點(diǎn)。

      參考文獻(xiàn)參考文獻(xiàn):

      [1]王珊,王會(huì)舉,覃雄派,等. 架構(gòu)大數(shù)據(jù):挑戰(zhàn)、現(xiàn)狀與展望[J]. 計(jì)算機(jī)學(xué)報(bào) 2011,34(10):17411752.

      [2]APACHE HADOOP.Hadoop[EB/OL]. http://hadoop.apache.org.

      [3]李建江,崔健,王聃,等. MapReduce并行編程模型研究綜述[J].電子學(xué)報(bào), 2011,39(11):26352642.

      [4][美]TOM WHITE. Hadoop權(quán)威指南[M].第2版. 北京:清華大學(xué)出版社,2011.

      責(zé)任編輯(責(zé)任編輯:杜能鋼)

      商都县| 阜平县| 通渭县| 东宁县| 通辽市| 云安县| 万全县| 会宁县| 公主岭市| 平舆县| 丰顺县| 贡山| 安阳市| 靖宇县| 屏东市| 突泉县| 封开县| 曲周县| 利川市| 塘沽区| 寻甸| 富顺县| 浠水县| 玉山县| 唐山市| 石泉县| 黄冈市| 和林格尔县| 高邑县| 弋阳县| 苍梧县| 和静县| 咸宁市| 且末县| 微山县| 同德县| 临武县| 会宁县| 莫力| 丰原市| 安徽省|