




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
作者:zbwd中國(guó)云計(jì)算論壇Email:xjtuzb@GTCRC@XJTUHadoop是一個(gè)開源的分布式并行計(jì)算平臺(tái),它主要由MapReduce的算法執(zhí)行和一個(gè)分布式的文件系統(tǒng)等兩部分組成。Hadoop起源于DougCutting大牛領(lǐng)導(dǎo)開發(fā)的Nutch搜索引擎項(xiàng)目的子項(xiàng)目?,F(xiàn)在是Apache軟件基金會(huì)管理的開源項(xiàng)目。本文主要介紹Hadoop及相關(guān)技術(shù),從Hadoop的起源開始講述,主要涵蓋了MapReduce算法思想,基本框架,運(yùn)行流程和編程粒度等內(nèi)容,以期給入門者提供一個(gè)關(guān)于Hadoop的技術(shù)簡(jiǎn)介和研究參考。關(guān)于Hadoop的安裝指南和編程范例并不在本文敘述范圍內(nèi),有需要者請(qǐng)參考其它資料。因筆者水平實(shí)在太有限了,文中如有疏漏錯(cuò)誤請(qǐng)不吝指出,萬(wàn)分感謝。本人資料多數(shù)來(lái)源于互聯(lián)網(wǎng)的技術(shù)文檔,附錄列出引文列表,特此致謝原文作者。最后,發(fā)自內(nèi)心、無(wú)與倫比地感謝Google、Apache軟件基金會(huì)和DougCuttiOK,讓我們開始吧!去尋找那神奇的小飛象。Hadoop云計(jì)算技術(shù)介紹第2頁(yè)共17頁(yè)●引言——Hadoop從何而來(lái)●算法思想——Hadoop是怎么思考的●基本架構(gòu)——Hadoop是如何構(gòu)成的●運(yùn)行流程—Hadoop是如何工作的●任務(wù)粒度——Hadoop是如何并行的●參考文獻(xiàn)Hadoop云計(jì)算技術(shù)介紹第3頁(yè)共17頁(yè)自從Google工程師JeffreyDean提出MapReduce編程思想,MapReduce便在Google的各種Web應(yīng)用中釋放著魔力。然而,也許出于技術(shù)保密的目的,Google公司并沒(méi)有透露其MapReduce的實(shí)現(xiàn)細(xì)節(jié)。幸運(yùn)的是,DougCutting開發(fā)的Hadoop作為MapReduce開源實(shí)現(xiàn),讓MapReduce這么平易近人地走到了我們面前。2006年1月,DougCutting因其在開源項(xiàng)目Nutch和Lucene的卓越表現(xiàn)受邀加入Yahoo公司,專職在Hadoop項(xiàng)目上進(jìn)行開發(fā)?,F(xiàn)在,DougCutting大牛已經(jīng)加盟Cloudera(一家從事Hadoop產(chǎn)品商業(yè)化及技術(shù)支持的公司)。作為GoogleMapReduce技術(shù)的開源實(shí)現(xiàn),Hadoop理所當(dāng)然地借鑒了GoogleHadoop也是一個(gè)能夠分布式處理大規(guī)模海量數(shù)據(jù)的軟件框架,這一點(diǎn)不足為奇。當(dāng)然,這一切都是在可靠、高效、可擴(kuò)展的基礎(chǔ)上。Hadoop的可靠性——因?yàn)镠adoop假設(shè)計(jì)算元素和存儲(chǔ)會(huì)出現(xiàn)故障,因?yàn)樗S護(hù)多個(gè)工作數(shù)據(jù)副本,在出現(xiàn)故障時(shí)可以對(duì)失敗的節(jié)點(diǎn)重新分布處理。Hadoop的高效性——在MapReduceHadoop云計(jì)算技術(shù)介紹第4頁(yè)共17頁(yè)的思想下,Hadoop是并行工作的,以加快任務(wù)處理速度。Hadoop的可擴(kuò)展—-依賴于部署Hadoop軟件框架計(jì)算集群的規(guī)模,Hadoop的運(yùn)算是可擴(kuò)展的,具有處理PB級(jí)數(shù)據(jù)的能力。雖然Hadoop自身由Java語(yǔ)言開發(fā),但它除了使用Java語(yǔ)言進(jìn)行編程外,同樣支持多種編程語(yǔ)言,如C++。Hadoop的長(zhǎng)期目標(biāo)是提供世界級(jí)的分布式計(jì)算工具,也是對(duì)下一代業(yè)務(wù)(如搜索結(jié)果分析等)提供支持的Web擴(kuò)展(web-scale)服務(wù)。MapReduce主要反映了映射和規(guī)約兩個(gè)概念,分別完成映射操作和規(guī)約操作。映射操作按照需求操作獨(dú)立元素組里面的每個(gè)元素,這個(gè)操作是獨(dú)立的,然后新建一個(gè)元素組保存剛生成的中間結(jié)果。因?yàn)樵亟M之間是獨(dú)立的,所以映射操作基本上是高度并行的。規(guī)約操作對(duì)一個(gè)元素組的元素進(jìn)行合適的歸并。雖然有可能規(guī)約操作不如映射操作并行度那么高,但是求得一個(gè)簡(jiǎn)單答案,大規(guī)模的運(yùn)行仍然可能相對(duì)獨(dú)立,所以規(guī)約操作也有高度并行的可能。Reduce(combine)ResultsMapReduce把數(shù)據(jù)集的大規(guī)模操作分配到網(wǎng)絡(luò)互聯(lián)的若干節(jié)點(diǎn)上進(jìn)行,以實(shí)現(xiàn)其可靠性;每個(gè)節(jié)點(diǎn)都會(huì)向主節(jié)點(diǎn)發(fā)送心跳信息,周期性地把執(zhí)行進(jìn)度和狀態(tài)報(bào)告回來(lái)。假如某個(gè)節(jié)點(diǎn)的心跳信息停止發(fā)送,或者超過(guò)預(yù)定時(shí)隙,主節(jié)點(diǎn)標(biāo)記該節(jié)點(diǎn)為死亡狀態(tài),并把先前分配到它的數(shù)據(jù)發(fā)送到其它節(jié)點(diǎn)。其中,每個(gè)操作使用命名文件的原子操作,避免并行線程之間沖突;當(dāng)文件被改名時(shí),系統(tǒng)可能會(huì)把它復(fù)制到任務(wù)名以外的其它名字節(jié)點(diǎn)上。由于規(guī)約操作的并行能力較弱,主節(jié)點(diǎn)盡可能把規(guī)約操作調(diào)度在同一個(gè)節(jié)點(diǎn)上,或者距離操作數(shù)據(jù)最近(或次近,最近節(jié)點(diǎn)出現(xiàn)故障時(shí))的節(jié)點(diǎn)上。MapReduce技術(shù)的優(yōu)勢(shì)在于對(duì)映射和規(guī)約操作的合理抽象,使得程序員在編寫大規(guī)模分布式并行應(yīng)用程序時(shí),幾乎不用考慮計(jì)算節(jié)點(diǎn)群的可靠性和擴(kuò)展性等問(wèn)題。應(yīng)用程序開發(fā)人員把精力集中在應(yīng)用程序本身,關(guān)于集群的處理問(wèn)題等交由MapReduce完成。擎兩部分組成。最底部是HDFS,它存儲(chǔ)Hadoop集群中所有存儲(chǔ)節(jié)點(diǎn)上的文件。HDFS的上一層是MapReduce引擎,該引擎由JobTrackers和TaskTrackersHDFS可以執(zhí)行的操作有創(chuàng)建、刪除、移動(dòng)或重命名文件等,架構(gòu)類似于傳統(tǒng)的分級(jí)文件系統(tǒng)。需要注意的是,HDFS的架構(gòu)基于一組特定的節(jié)點(diǎn)而構(gòu)建(參見圖2),HDFS的一個(gè)弱點(diǎn)(單點(diǎn)失敗)。一旦NameNode故障,后果可想而知。正所謂皮之不存,毛將焉附?Hadoop云計(jì)算技術(shù)介紹第7頁(yè)共17頁(yè)datanodeServerdatanodedatanodedatanode塊的大小(默認(rèn)為64MB)和復(fù)制的塊數(shù)量在創(chuàng)建文件時(shí)由客戶機(jī)決定。NameNode負(fù)責(zé)管理文件系統(tǒng)名稱空間和控制外部客戶機(jī)的訪問(wèn)。Na決定是否將文件映射到DataNode上的復(fù)制塊上。通常的策略是,對(duì)于最常見的3個(gè)復(fù)制塊,第一個(gè)復(fù)制塊存儲(chǔ)在同一機(jī)架的不同節(jié)點(diǎn)上,最后一個(gè)復(fù)制塊存儲(chǔ)在不同機(jī)架的某個(gè)節(jié)點(diǎn)上。請(qǐng)注意,只有表示DataNode和塊的文件映射的元數(shù)據(jù)經(jīng)過(guò)NameNode。當(dāng)外部客戶機(jī)發(fā)送請(qǐng)求要求創(chuàng)建文件時(shí),NameNode會(huì)以塊標(biāo)識(shí)和該塊的第一個(gè)副Hadoop云計(jì)算技術(shù)介紹第8頁(yè)共17頁(yè)本的DataNodeIP地址作為響應(yīng)。此外,NameNode還會(huì)通知其他將要接收該塊副本的DataNode。HDFSArchitectureMetadataMetadata(Name,replicas,…):Namenode/home/foo/data,3,...WriteNameNode在FsImage文件中存儲(chǔ)所有關(guān)于文件系統(tǒng)名稱空間的信息,該文件和一個(gè)包含所有事務(wù)的記錄文件將存儲(chǔ)在NameNode的本地文件系統(tǒng)上。FsImage和EditLog文件也有副本,以防止文件損壞或NameNode系統(tǒng)故通常以機(jī)架的形式組織,機(jī)架通過(guò)一個(gè)交換機(jī)將所有系統(tǒng)連接起來(lái)。通常,機(jī)架內(nèi)部節(jié)點(diǎn)之間的傳輸速度快于機(jī)架間節(jié)點(diǎn)的傳輸速度。Hadoop云計(jì)算技術(shù)介紹第9頁(yè)共17頁(yè)刪除和復(fù)制塊的命令;NameNode獲取每個(gè)DataNode的心跳消息,每條消息包含一個(gè)塊報(bào)告,NameNode據(jù)此驗(yàn)證塊映射和其他文件系統(tǒng)的元數(shù)據(jù)。如果DataNode無(wú)法發(fā)送心跳消息,NameNode將采取修復(fù)措施,重新復(fù)制在該節(jié)點(diǎn)HadoopMap/Reduce引擎由JobTracker(作業(yè)服務(wù)器)和TaskTracker(任務(wù)服務(wù)器)組成。DataLoaderDataLoaderSQLQuerySMSPlannerMapReduceJobMapReduceFrameworkJobTrackerInputFormatImplementationsDatabaseConnectorTaskwithInputFormatNode1TaskTrackerDatabaseDataNodeDatabaseDataNodeDatabaseDataNodeHadoopcoreMasternodeHDFSMapReduceJobTaskTrackerTaskTrackerNameNodeHadoop云計(jì)算技術(shù)介紹第10頁(yè)共17頁(yè)JobTracker(Google稱為Master)是負(fù)責(zé)管理調(diào)度所有作業(yè),它是整個(gè)系統(tǒng)分配任務(wù)的核心。它也是唯一的,這與HDFS類似。因此,簡(jiǎn)化了同步流程問(wèn)題。TaskTracker具體負(fù)責(zé)執(zhí)行用戶定義操作,每個(gè)作業(yè)被分割為任務(wù)集,包括Map任務(wù)和Reduce任務(wù)。任務(wù)是具體執(zhí)行的基本單元,TaskTracker執(zhí)行過(guò)程中需要向JobTracker發(fā)送心跳信息,匯報(bào)每個(gè)任務(wù)的執(zhí)行狀態(tài),幫助JobTracker收集作業(yè)執(zhí)行的整體情況,為下次任務(wù)分配提供依據(jù)。在Hadoop中,客戶端(任務(wù)的提交者)是一組API,用戶需要自定義自己需要的內(nèi)容,由客戶端將作業(yè)及其配置提交到JobTracker,并監(jiān)控執(zhí)行狀況。與HDFS的通信機(jī)制相同,HadoopMap/Reduce也使用協(xié)議接口來(lái)實(shí)現(xiàn)服務(wù)器間的通信。實(shí)現(xiàn)者作為RPC服務(wù)器,調(diào)用者經(jīng)由RPC的代理進(jìn)行調(diào)用??蛻舳伺cTaskTracker以及TaskTracker之間,都不再有直接通信。難道客戶端就不需要了解具體任務(wù)的執(zhí)行狀況嗎?不是。難道TaskTracker相互無(wú)需了解任務(wù)執(zhí)行情況嗎?也不是。由于整個(gè)集群各機(jī)器的通信比HDFS復(fù)雜的多,點(diǎn)對(duì)點(diǎn)直接通信難以維持狀態(tài)信息,所以統(tǒng)一由JobTracker收集整理轉(zhuǎn)發(fā)。最簡(jiǎn)單的MapReduce應(yīng)用程序至少包含3個(gè)部分:一個(gè)Map函數(shù)、一個(gè)Reduce函數(shù)和一個(gè)main函數(shù)。main函數(shù)將作業(yè)控制和文件輸入/輸出結(jié)合起來(lái)。在這點(diǎn)上,Hadoop提供了大量的接口和抽象類,從而為Hadoop應(yīng)用程序開發(fā)人員提供許多工具,可用于調(diào)試和性能度量等。UsarUsarprogram(1)forkMasterassign(4)lbcalwriteWorkerOutput900FCE:ogHowMapReduceworksIntermediatefiles(onlocaldisks)assignreducefle0OutputReducephaseMapphaseInputWiorkerWorkerreadMapReduce本身就是用于并行處理大數(shù)據(jù)集的軟件框架。MapReduce的根源是函數(shù)性編程中的map和reduce函數(shù)。它由兩個(gè)可能包含有許多實(shí)例(許多函數(shù)接受一組數(shù)據(jù)并將其轉(zhuǎn)換為一個(gè)鍵/值對(duì)列表,輸入域中的每個(gè)元素對(duì)應(yīng)一個(gè)鍵/值對(duì)。Reduce函數(shù)接受Map函數(shù)生成的列表,然后根據(jù)它們的鍵(為每個(gè)鍵生成一個(gè)鍵/值對(duì))縮小鍵/值對(duì)列表。Hadoop云計(jì)算技術(shù)介紹第12頁(yè)共17頁(yè)這里提供一個(gè)示例,幫助您理解它。假設(shè)輸入域是:我愛中國(guó)云計(jì)算網(wǎng),我愛云計(jì)算技術(shù)論壇。在這個(gè)域上運(yùn)行Map函數(shù)將得出以下的鍵/值對(duì)列表:如果對(duì)這個(gè)鍵/值對(duì)列表應(yīng)用Reduce函數(shù),將得到以下一組鍵/值對(duì):結(jié)果是對(duì)輸入域中的單詞進(jìn)行計(jì)數(shù),這無(wú)疑對(duì)處理索引十分有用。但是,現(xiàn)在假設(shè)有兩個(gè)輸入域,第一個(gè)是"我愛中國(guó)云計(jì)算網(wǎng)',第二個(gè)是“我愛云計(jì)算技術(shù)論壇'。您可以在每個(gè)域上執(zhí)行Map函數(shù)和Reduce函數(shù),然后將這兩個(gè)鍵/值對(duì)列表應(yīng)用到另一個(gè)Reduce函數(shù),這時(shí)得到與前面一樣的結(jié)果。換句話說(shuō),可以在輸入域并行使用相同的操作,得到的結(jié)果是一樣的,但速度更快。這便是MapReduce的威力;它的并行功能可在任意數(shù)量的系統(tǒng)上使用。圖5演示了MapReduce的思想。一個(gè)代表客戶機(jī)在單個(gè)主系統(tǒng)上啟動(dòng)的MapReduce應(yīng)用程序稱為JobTracker,類似于NameNode,它是Hadoop集群序的系統(tǒng)。在應(yīng)用程序提交之后,將提供包含在HDFS中的輸入和輸出目錄。JobTracker使用文件塊信息(物理量和位置)確定如何創(chuàng)建其他TaskTracker從屬任務(wù)。MapReduce應(yīng)用程序被復(fù)制到每個(gè)出現(xiàn)輸入文件塊的節(jié)點(diǎn)。將為特定節(jié)點(diǎn)上的每個(gè)文件塊創(chuàng)建一個(gè)惟一的從屬任務(wù),每個(gè)TaskTracker將狀態(tài)和完成Map調(diào)用把輸入數(shù)據(jù)自動(dòng)分割成M片,并且分發(fā)到多個(gè)節(jié)點(diǎn)上,使得輸入數(shù)據(jù)能夠在多個(gè)節(jié)點(diǎn)上并行處理。Reduce調(diào)用利用分割函數(shù)分割中間key,從而形成R片(例如,hash(key)modR),它們也會(huì)被分發(fā)到多個(gè)節(jié)點(diǎn)上。分割數(shù)量R和分割PicturePictureSlicing+BlobsetCreationSlice0Worker0Slice1Slice2Slice3HistogramSlice5Slice6Worker2Slice7AggregateReduce由上的分析可知,我們細(xì)分map階段成M片,reduce階段成R片。在理想狀態(tài)下,M和R應(yīng)當(dāng)比worker機(jī)器數(shù)量要多得多。每個(gè)worker執(zhí)行許多不同的工作來(lái)提高動(dòng)態(tài)負(fù)載均衡,并且能夠加快故障
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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年河南推拿職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 2025年度新型法院執(zhí)行和解協(xié)議書編制指南
- 2025年度農(nóng)村房屋拆遷與鄉(xiāng)村振興項(xiàng)目合作協(xié)議
- 2025年度養(yǎng)老服務(wù)機(jī)構(gòu)單位解除勞動(dòng)合同及養(yǎng)老服務(wù)協(xié)議
- 2025年度合資企業(yè)股權(quán)分配與合作協(xié)議
- 2025年度工地施工期間施工進(jìn)度與費(fèi)用控制協(xié)議
- 液態(tài)粘合劑槽罐車運(yùn)輸范本
- 智能家居別墅設(shè)計(jì)合同樣本
- 2025年度人工智能智能家居產(chǎn)品合作合同解除協(xié)議書
- 2025年度個(gè)人消費(fèi)債權(quán)轉(zhuǎn)讓及分期還款協(xié)議
- 北師大版四年級(jí)數(shù)學(xué)下冊(cè)期末測(cè)試卷(一)(含答案)
- 2025年云南省曲靖市富源縣能源局公開招聘引進(jìn)煤礦安全監(jiān)管急需緊缺人才筆試高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 婦產(chǎn)科學(xué)(甲)知到智慧樹章節(jié)測(cè)試課后答案2024年秋浙江大學(xué)
- 2025年春新外研版(三起)英語(yǔ)三年級(jí)下冊(cè)課件 Unit3第1課時(shí)startup
- FSC培訓(xùn)課件教學(xué)課件
- 2025年福建福州地鐵集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 初中數(shù)學(xué)幾何《旋轉(zhuǎn)模型費(fèi)馬點(diǎn)》壓軸題含答案解析
- 康復(fù)健康小屋課件
- 《內(nèi)部審計(jì)程序》課件
- 江西省宜春市豐城市第九中學(xué)2024-2025學(xué)年九年級(jí)上學(xué)期第二次段考化學(xué)試卷(日新班)(無(wú)答案)
- 江蘇省2024-2025年跨地區(qū)職業(yè)學(xué)校職教高考一輪聯(lián)考(機(jī)械專業(yè)綜合理論試卷含答案)
評(píng)論
0/150
提交評(píng)論