大數(shù)據(jù)導(dǎo)論-思維、技術(shù)與應(yīng)用-第4章-大數(shù)據(jù)處理系統(tǒng)_第1頁(yè)
大數(shù)據(jù)導(dǎo)論-思維、技術(shù)與應(yīng)用-第4章-大數(shù)據(jù)處理系統(tǒng)_第2頁(yè)
大數(shù)據(jù)導(dǎo)論-思維、技術(shù)與應(yīng)用-第4章-大數(shù)據(jù)處理系統(tǒng)_第3頁(yè)
大數(shù)據(jù)導(dǎo)論-思維、技術(shù)與應(yīng)用-第4章-大數(shù)據(jù)處理系統(tǒng)_第4頁(yè)
大數(shù)據(jù)導(dǎo)論-思維、技術(shù)與應(yīng)用-第4章-大數(shù)據(jù)處理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

大數(shù)據(jù)導(dǎo)論第四章PART01大數(shù)據(jù)技術(shù)概述PART02Google大數(shù)據(jù)處理系統(tǒng)CONTENTS目錄PART03Hadoop大數(shù)據(jù)處理系統(tǒng)PART04習(xí)題本節(jié)從以下三個(gè)部分概括講解,分別是:分布式計(jì)算(DistributedComputing)服務(wù)器集群(ServerCluster)大數(shù)據(jù)的技術(shù)基礎(chǔ)PART01大數(shù)據(jù)技術(shù)概述分布式計(jì)算對(duì)于如何處理大數(shù)據(jù),計(jì)算機(jī)科學(xué)界有兩大方向。第一個(gè)方向是集中式計(jì)算,第二個(gè)方向是分布式計(jì)算。集中式計(jì)算:通過不斷增加處理器的數(shù)量來增強(qiáng)單個(gè)計(jì)算機(jī)的計(jì)算能力,從而提高處理數(shù)據(jù)的速度。分布式計(jì)算:就是把一組計(jì)算機(jī)通過網(wǎng)絡(luò)相互連接組成分散系統(tǒng),然后將需要處理的大量數(shù)據(jù)分散成多個(gè)部分,交由分散系統(tǒng)內(nèi)的計(jì)算機(jī)組同時(shí)計(jì)算,最后將這些計(jì)算結(jié)果合并得到最終的結(jié)果。對(duì)于當(dāng)時(shí)的互聯(lián)網(wǎng)公司來說,IBM的大型機(jī)的價(jià)格過于昂貴。因此,互聯(lián)網(wǎng)公司的把研究方向放在了可以使用在廉價(jià)計(jì)算機(jī)上的分布式計(jì)算上

。服務(wù)器集群服務(wù)器集群是由互相連接在一起的服務(wù)器群所組成的一個(gè)并行式或分布式系統(tǒng)。目的在于提升服務(wù)器整體計(jì)算能力服務(wù)器集群中的服務(wù)器運(yùn)行同一個(gè)計(jì)算任務(wù)。因此,從外部看,這群服務(wù)器表現(xiàn)為一臺(tái)虛擬的服務(wù)器,對(duì)外提供統(tǒng)一的服務(wù)。盡管單臺(tái)服務(wù)器的運(yùn)算能力有限,但是將成百上千的服務(wù)器組成服務(wù)器集群后,整個(gè)系統(tǒng)就具備了強(qiáng)大的運(yùn)算能力,可以支持大數(shù)據(jù)分析的運(yùn)算負(fù)荷。比如:Google,Amazon,阿里巴巴的計(jì)算中心里的服務(wù)器集群都達(dá)到了5000臺(tái)服務(wù)器的規(guī)模。大數(shù)據(jù)的計(jì)算基礎(chǔ)2003~2004年,Google發(fā)表了MapReduce、GFS(GoogleFileSystem)和BigTable三篇技術(shù)論文,提出了一套全新的分布式計(jì)算理論。以下三大組件組成了Google的分布式計(jì)算模型:MapReduce是分布式計(jì)算框架。GFS(GoogleFileSystem)是分布式文件系統(tǒng)。BigTable是基于GoogleFileSystem的數(shù)據(jù)存儲(chǔ)系統(tǒng)。Google的分布式計(jì)算模型相比于傳統(tǒng)的分布式計(jì)算模型有三大優(yōu)勢(shì):首先,簡(jiǎn)化了傳統(tǒng)的分布式計(jì)算理論,降低了技術(shù)實(shí)現(xiàn)的難度。其次,可以應(yīng)用在廉價(jià)的計(jì)算設(shè)備上。最后,被Google應(yīng)用,取得了很好的效果,有實(shí)際應(yīng)用的證明。大數(shù)據(jù)的計(jì)算基礎(chǔ)隨后,各家互聯(lián)網(wǎng)公司開始利用Google的分布式計(jì)算模型搭建自己的分布式計(jì)算系統(tǒng),Google的成功使人們開始效仿,因此而產(chǎn)生了開源系統(tǒng)ApacheHadoop。Hadoop體系和Google體系各方面的對(duì)應(yīng)關(guān)系表大數(shù)據(jù)系統(tǒng)體系計(jì)算模式文件系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)Hadoop體系HadoopMapReduceHDFSHBaseGoogle體系MapReduceGFSBigTableGoogle提出了一整套基于分布式并行集群方式的基礎(chǔ)架構(gòu)技術(shù),利用軟件的能力來處理集群中經(jīng)常發(fā)生的節(jié)點(diǎn)失效問題。Google使用的大數(shù)據(jù)平臺(tái)主要包括三個(gè)相互獨(dú)立又緊密結(jié)合在一起的系統(tǒng):Google文件系統(tǒng)(GoogleFileSystem,GFS),針對(duì)Google應(yīng)用程序的特點(diǎn)提出的MapReduce編程模式,和大規(guī)模分布式數(shù)據(jù)庫(kù)BigTable。PART02Google大數(shù)據(jù)處理系統(tǒng)

GFS系統(tǒng)架構(gòu)GFS是一個(gè)大型的分布式文件系統(tǒng),為Google大數(shù)據(jù)處理系統(tǒng)提供海量存儲(chǔ),主要由一個(gè)Master(主服務(wù)器)和很多ChunkServer(數(shù)據(jù)塊服務(wù)器)組成。Client是應(yīng)用程序的訪問GFS的接口。ChunkServer負(fù)責(zé)具體的存儲(chǔ)工作。數(shù)據(jù)以文件的形式存儲(chǔ)在ChunkServer上。Master主要是負(fù)責(zé)維護(hù)系統(tǒng)中的名字空間、訪問控制信息、從文件到塊的映射以及塊的當(dāng)前位置等元素?fù)?jù),并與ChunkServer通信。GFS的系統(tǒng)架構(gòu)GFS的特點(diǎn)GFS系統(tǒng)有如下好處:文件操作大部分是流式讀寫,不存在大量重復(fù)的讀寫,因此即使使用緩存對(duì)系統(tǒng)性能的提高也不大;ChunkServer上的數(shù)據(jù)存儲(chǔ)在本地文件系統(tǒng)上,若真的出現(xiàn)頻繁存取,那么本地文件系統(tǒng)的緩存也可以支持;若建立系統(tǒng)緩存,那么緩存中的數(shù)據(jù)與ChunkServer中的數(shù)據(jù)的一致性很難保證。1采用中心服務(wù)器模式,有如下優(yōu)勢(shì):沒有系統(tǒng)緩存具有如下優(yōu)勢(shì):2可以方便的增加ChunkServer;Master可以掌握系統(tǒng)內(nèi)所有ChunkServer的情況,方便進(jìn)行負(fù)載均衡;不存在元數(shù)據(jù)的一致性問題。GFS的容錯(cuò)機(jī)制GFS采用中心服務(wù)器的模式,該模式的最大優(yōu)點(diǎn)是便于管理,因?yàn)橹行姆?wù)器可以獲知所有子服務(wù)器的狀態(tài),但該模式也有一個(gè)比較致命的缺點(diǎn),那就是單點(diǎn)故障。其實(shí),GFS的中心服務(wù)器只是邏輯上是一個(gè),實(shí)際上GFS的Manster是有后備機(jī)制的。當(dāng)Master宕機(jī)時(shí),后備Master會(huì)接替工作。Chunk服務(wù)器在硬盤上存儲(chǔ)實(shí)際數(shù)據(jù)。Google把每個(gè)chunk數(shù)據(jù)塊的大小設(shè)計(jì)成64M,每個(gè)chunk被復(fù)制成3個(gè)副本放到不同的ChunkServer中,以創(chuàng)建冗余來避免服務(wù)器崩潰。GFS的讀取流程(1)客戶端向Master發(fā)送請(qǐng)求,請(qǐng)求信息為(文件名,chunk索引);(2)Master使用心跳信息監(jiān)控塊服務(wù)器的狀態(tài),并向其發(fā)送指令;(3)ChunkServer需要周期性的返回自己的狀態(tài)給Master,以確保能夠接收Master的請(qǐng)求;(4)Master將(Chunk句柄,Chunk位置)這一信息返回給客戶端;(5)客戶端使用文件名和塊索引作為Key進(jìn)行緩存信息。然后,客戶端發(fā)送請(qǐng)求到其中的一個(gè)副本中(通常為最近的),該請(qǐng)求包括(Chunk句柄,字節(jié)范圍)。對(duì)這個(gè)塊的后續(xù)操作,客戶端無需再和Master進(jìn)行通信,除非緩存信息過期或者文件被重新打開。(6)塊服務(wù)器將所需的chunk數(shù)據(jù)發(fā)送給客戶端。MapReduce執(zhí)行流程MapReduce執(zhí)行流程MapReduce執(zhí)行流程用戶程序首先調(diào)用MapReduce庫(kù)操作將輸入文件分成M個(gè)數(shù)據(jù)片段;然后將用戶程序拷貝到集群內(nèi)其它機(jī)器上,創(chuàng)建大量的程序副本。這些程序副本中的有一個(gè)Master程序,其它的都是worker程序。Master程序負(fù)責(zé)分配任務(wù)。有M個(gè)map任務(wù)和R個(gè)reduce任務(wù)將被分配,Master將一個(gè)map任務(wù)或reduce任務(wù)分配給一個(gè)空閑的worker。

被分配了map任務(wù)的worker程序讀取相關(guān)的輸入數(shù)據(jù)片段,從輸入的數(shù)據(jù)片段中解析出key/value對(duì),然后把key/value對(duì)傳遞給用戶自定義的Map函數(shù),由Map函數(shù)生成并輸出的中間key/value對(duì),并緩存在內(nèi)存中。

緩存中的key/value對(duì)通過分區(qū)函數(shù)分成R個(gè)區(qū)域,之后周期性的寫入到本地磁盤上。緩存的key/value對(duì)在本地磁盤上的存儲(chǔ)位置將被回傳給master,由master負(fù)責(zé)把這些存儲(chǔ)位置再傳送給Reduceworker。1234MapReduce執(zhí)行流程當(dāng)Reduceworker程序接收到master程序發(fā)來的數(shù)據(jù)存儲(chǔ)位置信息后,使用RPC從Mapworker所在主機(jī)的磁盤上讀取這些緩存數(shù)據(jù)。當(dāng)Reduceworker讀取了所有的中間數(shù)據(jù)后,通過對(duì)key進(jìn)行排序后使得具有相同key值的數(shù)據(jù)聚合在一起。Reduceworker程序遍歷排序后的中間數(shù)據(jù),對(duì)于每一個(gè)唯一的中間key值,Reduceworker程序?qū)⑦@個(gè)key值和它相關(guān)的中間value值的集合傳遞給用戶自定義的Reduce函數(shù)。Reduce函數(shù)的輸出被追加到所屬分區(qū)的輸出文件。當(dāng)所有的Map和Reduce任務(wù)都完成之后,master喚醒用戶程序。在這個(gè)時(shí)候,在用戶程序里的對(duì)MapReduce調(diào)用才返回。567BigTable分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)簡(jiǎn)介BigTable是Google設(shè)計(jì)的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),用來處理海量的數(shù)據(jù)的一種非關(guān)系型的數(shù)據(jù)庫(kù)。設(shè)計(jì)BigTable的動(dòng)機(jī)主要有:需要存儲(chǔ)的數(shù)據(jù)種類繁多。海量的服務(wù)請(qǐng)求。商用數(shù)據(jù)庫(kù)無法滿足Google的需求。設(shè)計(jì)BigTable所需的基本目標(biāo):廣泛的適用性。很強(qiáng)的可擴(kuò)展性。高可用性。簡(jiǎn)單性。BigTable數(shù)據(jù)模型BigTable是一個(gè)分布式多維映射表,表中的數(shù)據(jù)是通過一個(gè)行關(guān)鍵字(RowKey)、一個(gè)列關(guān)鍵字(ColumnKey)及一個(gè)時(shí)間戳(TimeStamp)進(jìn)行索引的。行關(guān)鍵字(RowKey)BigTable的行關(guān)鍵字可以是任意的字符串,但是大小不能夠超過64KB。并且表中數(shù)據(jù)都是根據(jù)行關(guān)鍵字進(jìn)行排序的,排序使用的是詞典序。列關(guān)鍵字(ColumnKey)BigTable并不是簡(jiǎn)單地存儲(chǔ)所有的列關(guān)鍵字,而是將其組織成所謂的列族(ColumnFamily),每個(gè)族中的數(shù)據(jù)都屬于同一個(gè)類型,BigTable數(shù)據(jù)模型列關(guān)鍵字語(yǔ)法規(guī)則:族名:限定詞(family:qualifier)其中,族名必須有意義,限定詞則可以任意選定。時(shí)間戳(TimeStamp)部分需要保存不同時(shí)間的數(shù)據(jù),這些不同的數(shù)據(jù)版本必須通過時(shí)間戳來區(qū)分。BigTable中的時(shí)間戳是64位整型數(shù)。為了簡(jiǎn)化不同版本的數(shù)據(jù)管理,BigTable目前提供了兩種設(shè)置:一種是保留最近的N個(gè)不同版本另一種就是保留限定時(shí)間內(nèi)的所有不同版本BigTable數(shù)據(jù)模型BigTable對(duì)存儲(chǔ)在其中的數(shù)據(jù)不做任何解析,一律看做字符串。BigTable的存儲(chǔ)邏輯可以表示為:(row:string,

column:string,

time:int64)→string

BigTable數(shù)據(jù)模型BigTable系統(tǒng)架構(gòu)BigTable是在Google的三個(gè)大數(shù)據(jù)系統(tǒng)組件基礎(chǔ)之上構(gòu)建的,包括WorkQueue、GFS和Chubby,BigTable主要由三部分組成:客戶端程序庫(kù)(ClientLibrary)、一個(gè)主服務(wù)器(MasterServer)和多個(gè)子表服務(wù)器(TabletServer)WorkQueue是一個(gè)分布式的任務(wù)調(diào)度器,它主要被用來處理分布式系統(tǒng)隊(duì)列分組和任務(wù)調(diào)度。GFS是Google的分布式文件系統(tǒng),在BigTable中GFS主要用來存儲(chǔ)子表數(shù)據(jù)及一些日志文件。BigTable還需要一個(gè)鎖服務(wù)的支持,BigTable選用了Google自己開發(fā)的分布式鎖服務(wù)Chubby。BigTable系統(tǒng)架構(gòu)主服務(wù)主要進(jìn)行一些元數(shù)據(jù)的操作及子表服務(wù)器之間的負(fù)載調(diào)度問題。實(shí)際的數(shù)據(jù)是存儲(chǔ)在子表服務(wù)器上的。首先要利用其庫(kù)函數(shù)執(zhí)行Open()操作來打開一個(gè)鎖(實(shí)際上就是獲取了文件目錄),客戶端主要與子表服務(wù)器通信。Hadoop是一個(gè)處理、存儲(chǔ)和分析海量的分布式、非結(jié)構(gòu)化數(shù)據(jù)的開源框架。最初由Yahoo的工程師DougCutting和MikeCafarella在2005年合作開發(fā),后來,Hadoop被貢獻(xiàn)給了Apache基金會(huì),成為了Apache基金會(huì)的開源項(xiàng)目。PART03Hadoop大數(shù)據(jù)處理系統(tǒng)Hadoop簡(jiǎn)介Hadoop是一種分析和處理大數(shù)據(jù)的軟件平臺(tái),是Appach的一個(gè)用Java語(yǔ)言所實(shí)現(xiàn)的開源軟件的框架,在大量計(jì)算機(jī)組成的集群當(dāng)中實(shí)現(xiàn)對(duì)于海量的數(shù)據(jù)進(jìn)行的分布式計(jì)算。Hadoop采用MapReduce分布式計(jì)算框架,并根據(jù)GFS開發(fā)了HDFS分布式文件系統(tǒng),根據(jù)BigTable開發(fā)了HBase數(shù)據(jù)存儲(chǔ)系統(tǒng)。低成本、高可靠、高擴(kuò)展、高有效、高容錯(cuò)等特性讓Hadoop成為最流行的大數(shù)據(jù)分析系統(tǒng)。HDFS分布式文件系統(tǒng)HDFS是Hadoop中的大規(guī)模分布式文件系統(tǒng),在整個(gè)架構(gòu)上與GFS大致相同,但是更簡(jiǎn)化,比如同一時(shí)刻只允許一個(gè)客戶端對(duì)文件進(jìn)行追加寫操作。HDFS的整體架構(gòu)包括:NameNode,DataNode,SecondaryNameNode以及客戶端組成。NameNode(名稱節(jié)點(diǎn)):NameNode負(fù)責(zé)管理整個(gè)分布式文件系統(tǒng)的元數(shù)據(jù)。元數(shù)據(jù)保存在內(nèi)存中還負(fù)責(zé)DataNode的狀態(tài)監(jiān)控,通過心跳來傳遞管理信息和數(shù)據(jù)信息。HDFS分布式文件系統(tǒng)SecondaryNameNode(輔助名稱節(jié)點(diǎn))定期從NameNode備份內(nèi)存命名空間元數(shù)據(jù)到文件系統(tǒng),以便當(dāng)NameNode出現(xiàn)故障的時(shí)候,可以從SecondaNameNode上獲取HDFS命名空間元數(shù)據(jù),從而重啟NameNode。DataNode(數(shù)據(jù)節(jié)點(diǎn))負(fù)責(zé)數(shù)據(jù)塊的實(shí)際存儲(chǔ)和讀寫。每個(gè)數(shù)據(jù)塊以3份冗余鏡像的方式分布在不同的DataNodes。這樣,如果一個(gè)節(jié)點(diǎn)失效,另一個(gè)節(jié)點(diǎn)包含失效節(jié)點(diǎn)數(shù)據(jù)的副本??蛻舳薍DFS客戶端和NameNode聯(lián)系獲取所需讀/寫文件的元數(shù)據(jù),實(shí)際的數(shù)據(jù)讀寫都是和DataNode直接通信完成的。HDFS分布式文件系統(tǒng)HDFS具有以下幾個(gè)特點(diǎn):適合存儲(chǔ)非常大的文件;適合流式數(shù)據(jù)讀取,即適合“只寫一次,讀多次”的數(shù)據(jù)處理模式;適合部署在廉價(jià)的機(jī)器上。HDFS不適合以下場(chǎng)景:不適合存儲(chǔ)大量的小文件,因?yàn)槭躈ameNode內(nèi)存大小限制;不適合實(shí)時(shí)數(shù)據(jù)讀取,高吞吐量和實(shí)時(shí)性是相悖的,HDFS選擇前者;不適合需要經(jīng)常修改數(shù)據(jù)的場(chǎng)景。HDFS整體架構(gòu)如下圖:HadoopMapReduce計(jì)算模型HadoopMapReduce計(jì)算模型:HadoopMapReduce為每一個(gè)inputsplit創(chuàng)建一個(gè)task調(diào)用Map計(jì)算,在此task中依次處理此split中的一個(gè)個(gè)記錄,map會(huì)將結(jié)果以key/value的形式輸出。Hadoop負(fù)責(zé)按key值將map的輸出整理后作為Reduce的輸入,ReduceTask的輸出為整個(gè)job的輸出,保存在HDFS上。單詞計(jì)數(shù)程序案例實(shí)例描述.計(jì)算出文件中每個(gè)單詞的頻數(shù)。要求輸出結(jié)果按照單詞的字母順序進(jìn)行排序。每個(gè)單詞和其頻數(shù)占一行,單詞和頻數(shù)之間有間隔。比如,輸入兩個(gè)文件,其內(nèi)容分別如下:對(duì)應(yīng)上面的輸入,其輸出樣例為:HelloWorldByeWorldHelloHadoopByeWorldBye:2Hadoop:2Hello:2World:2單詞計(jì)數(shù)程序設(shè)計(jì)思路解決方案將文件內(nèi)容切分成單詞,然后將所有相同的單詞聚集在一起,最后計(jì)算單詞出現(xiàn)的次數(shù)并輸出。Map階段:完成單詞切分任務(wù)內(nèi)容切分和數(shù)據(jù)不相關(guān),可以并行處理,每個(gè)節(jié)點(diǎn)只要將輸入數(shù)據(jù)切分成單詞就可以了。Reduce階段:完成單詞頻數(shù)計(jì)算任務(wù)不同單詞之間的頻數(shù)不相關(guān),相同單詞的頻數(shù)計(jì)算也可以并行化處理,所以,可以將相同的單詞交給一臺(tái)機(jī)器來計(jì)算頻數(shù),然后輸出最終結(jié)果。Shuffle階段:完成相同單詞的聚集和分發(fā)工作將中間結(jié)果根據(jù)不同單詞分組分發(fā)給Reduce節(jié)點(diǎn)單詞計(jì)數(shù)程序案例第一步:自動(dòng)對(duì)文本進(jìn)行分割對(duì)兩個(gè)文本進(jìn)行MapReduce操作把每個(gè)文本作為一個(gè)split將文本按行分割成<key1,value1>對(duì),key1為單詞在文本中的偏移量,其中偏移量包括了回車所占的字符這一步由MapReduce框架自動(dòng)完成HelloWorldByeWorldHelloHadoopByeHadoop分割分割輸入數(shù)據(jù)分割結(jié)果<0,“HelloWorld”><12,“ByeWorld”><0,“HelloHadoop”><13,“ByeHadoop”>單詞計(jì)數(shù)程序案例第二步:執(zhí)行map()函數(shù)將分割好的<key1,value1>對(duì)交給用戶定義的map方法進(jìn)行處理,生成新的<key2,value2>對(duì)在新的<key2,value2>對(duì)中,Key2為單詞,value2均為1map分割結(jié)果Map輸出map<0,“HelloWorld”><12,“ByeWorld”><0,“HelloHadoop”><13,“ByeHadoop”><Hello,1><Hadoop,1><Bye,1><Hadoop,1><Hello,1><World,1><Bye,1><World,1>單詞計(jì)數(shù)程序案例第三步:內(nèi)部組合得到map方法輸出的<key,value>對(duì)后,Mapper會(huì)將它們按照key值進(jìn)行排序并進(jìn)行內(nèi)部組合,將key值相同value值組合成list,得到Mapper的最終輸出結(jié)果Map輸出排序結(jié)果組合結(jié)果<Hello,1><World,1><Bye,1><World,1><Hello,1><Hadoop,1><Bye,1><Hadoop,1>排序排序組合組合<Bye,1><Hello,1><World,1><World,1><Bye,1><Hadoop,1><Hadoop,1><Hello,1><Bye,1><Hello,1><World,list(1,1)><Bye,1><Hadoop,list(1,1)><Hello,1>單詞計(jì)數(shù)程序案例第四步:執(zhí)行reduce()函數(shù)Reducer先對(duì)從Mapper接收的數(shù)據(jù)進(jìn)行排序合并再交由用戶自定義的reduce方法進(jìn)行處理,得到新的<key3,value3>對(duì)并作為WordCount的輸出結(jié)果組合結(jié)果排序合并結(jié)果Reduce結(jié)果<Bye,1><Hello,1><World,list(1,1)><Bye,1><Hadoop,list(1,1)><Hello,1>排序reduce<Bye,list(1,1)><Hadoop,list(1,1)><Hello,list(1,1)><World,list(1,1)>Bye:2Hadoop:2Hello:2World:2HadoopMapReduce架構(gòu)HadoopMapReduce運(yùn)行架構(gòu)圖:在HadoopMapReduce分布式計(jì)算模型主要有兩個(gè)角色,第一個(gè)角色是JobTracker;另一個(gè)角色是TaskTracker。JobTracker的主要任務(wù)是負(fù)責(zé)協(xié)調(diào)Mapreduce作業(yè)的執(zhí)行,具體是任務(wù)的調(diào)度、分發(fā)。JobTracker是Mapreduce計(jì)算架構(gòu)中的主控節(jié)點(diǎn)。TaskTracker用來執(zhí)行JobTracker分配的任務(wù),具體包括Map任務(wù)和Reduce任務(wù)。Hadoop生態(tài)圈Hadoop生態(tài)系統(tǒng):Hadoop生態(tài)圈包括如下主要組件:ZookeeperHBaseHadoopYARN:HDFSPigHiveMapReduceHadoop版本演進(jìn)當(dāng)前Hadoop有兩大版本:Hadoop1.0和Hadoop2.0。Hadoop版本演進(jìn)Hadoop1.0由分布式文件系統(tǒng)HDFS和分布式計(jì)算框架MapReduce組成HDFS由一個(gè)NameNode和多個(gè)DataNode組成MapReduce由一個(gè)JobTracker和多個(gè)TaskTracker組成Hadoop1.0局限性NameNode單點(diǎn)故障問題資源利用率低無法支持多種計(jì)算框架擴(kuò)展性差Hadoop版本演進(jìn)Hadoop2.0為克服Hadoop1.0中HDFS和MapReduce存在的不足而提出第二代Hadoop針對(duì)Hadoop1.0的單NameNode制約HDFS擴(kuò)展性問題,提出HDFSFederation。針對(duì)Hadoop1.0中MapReduce在擴(kuò)展性和多框架支持等方面不足的問題,將JobTracker中資源管理和作業(yè)控制功能分開,分別由組件ResourceManager和ApplicationMaster實(shí)現(xiàn)。引入了資源管理框架Yarn通用的資源管理模塊,為各類應(yīng)用程序進(jìn)行資源管理和調(diào)度Hadoop2.0改進(jìn)Hadoop發(fā)行版本ClouderaHortonworks2008年成立的Cloudera是最早將Hadoop商用的公司,Cloudera產(chǎn)品主要為:CDH:是Cloudera的Hadoop發(fā)行版,并且完全開源。ClouderaManager:是集群的軟件分發(fā)及管理監(jiān)控平臺(tái)。ClouderaSupport:是對(duì)Hadoop的技術(shù)支持。2011年成立的Hortonworks,是Y

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論