Hadoop分布式文件系統(tǒng):架構(gòu)和設(shè)計(jì)_第1頁(yè)
Hadoop分布式文件系統(tǒng):架構(gòu)和設(shè)計(jì)_第2頁(yè)
Hadoop分布式文件系統(tǒng):架構(gòu)和設(shè)計(jì)_第3頁(yè)
Hadoop分布式文件系統(tǒng):架構(gòu)和設(shè)計(jì)_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、Hadoop 分布式文件系統(tǒng):架構(gòu)和設(shè)計(jì)引言 一 前提和設(shè)計(jì)目標(biāo)1 hadoop 和云計(jì)算的關(guān)系2 流式數(shù)據(jù)訪問(wèn)3 大規(guī)模數(shù)據(jù)集4 簡(jiǎn)單的一致性模型5 異構(gòu)軟硬件平臺(tái)間的可移植性6 硬件錯(cuò)誤二 HDFS 重要名詞解釋1 Namenode 2 secondary Namenode 3 Datanode 4 jobTracker 5 TaskTracker 三HDFS數(shù)據(jù)存儲(chǔ)1 HDFS 數(shù)據(jù)存儲(chǔ)特點(diǎn)2 心跳機(jī)制3 副本存放4 副本選擇5 安全模式四HDFS數(shù)據(jù)健壯性1 磁盤(pán)數(shù)據(jù)錯(cuò)誤,心跳檢測(cè)和重新復(fù)制2 集群均衡3數(shù)據(jù)完整性4元數(shù)據(jù)磁盤(pán)錯(cuò)誤5快照引言云計(jì)算(cloud computing) ,由

2、位于網(wǎng)絡(luò)上的一組服務(wù)器把其計(jì)算、存儲(chǔ)、數(shù)據(jù)等資源以服務(wù)的形式提 供給請(qǐng)求者以完成信息處理任務(wù)的方法和過(guò)程。在此過(guò)程中被服務(wù)者只是提供需求并獲取服務(wù)結(jié)果,對(duì)于需求被服務(wù)的過(guò)程并不知情。同時(shí)服務(wù)者以最優(yōu)利用的方式動(dòng)態(tài)地把資源分配給眾多的服務(wù)請(qǐng)求者,以求達(dá)到最大效益。Hadoop分布式文件系統(tǒng)(HDFS)被設(shè)計(jì)成適合運(yùn)彳f在通用硬件(commodity hardware)上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點(diǎn)。但同時(shí),它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問(wèn),非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。一

3、前提和設(shè)計(jì)目標(biāo) 1 hadoop和云計(jì)算的關(guān)系云計(jì)算由位于網(wǎng)絡(luò)上的一組服務(wù)器把其計(jì)算、存儲(chǔ)、數(shù)據(jù)等資源以服務(wù)的形式提供給請(qǐng)求者以完成信息處理任務(wù)的方法和過(guò)程。針對(duì)海量文本數(shù)據(jù)處理,為實(shí)現(xiàn)快速文本處理響應(yīng),縮短海量數(shù)據(jù)為輔助決策提供服務(wù)的時(shí)間,基于Hadoop云計(jì)算平臺(tái),建立HDFS分布式文件系統(tǒng)存儲(chǔ)海量文本數(shù)據(jù)集,通過(guò)文本詞頻利用MapReduce 原理建立分布式索引,以分布式數(shù)據(jù)庫(kù) HBase存儲(chǔ)關(guān)鍵詞索引,并提供實(shí)時(shí)檢索,實(shí)現(xiàn)對(duì)海量文本 數(shù)據(jù)的分布式并行處理.實(shí)驗(yàn)結(jié)果表明,Hadoop框架為大規(guī)模數(shù)據(jù)的分布式并行處理提供了很好的解決方案。2流式數(shù)據(jù)訪問(wèn)運(yùn)行在HDFS上的應(yīng)用和普通的應(yīng)用不同

4、,需要流式訪問(wèn)它們的數(shù)據(jù)集。HDFS的設(shè)計(jì)中更多的考慮到了數(shù)據(jù)批處理,而不是用戶交互處理。比之?dāng)?shù)據(jù)訪問(wèn)的低延遲問(wèn)題,更關(guān)鍵的在于數(shù)據(jù)訪問(wèn)的高吞吐量。3大規(guī)模數(shù)據(jù)集運(yùn)行在HDFS上的應(yīng)用具有很大的數(shù)據(jù)集。HDFS上的一個(gè)典型文件大小一般都在G字節(jié)至T字節(jié)。因此,HDFS被調(diào)節(jié)以支持大文件存儲(chǔ)。它應(yīng)該能提供整體上高的數(shù)據(jù)傳輸帶寬,能在一個(gè)集群里擴(kuò)展到數(shù)百個(gè)節(jié)點(diǎn)。一個(gè)單一的 HDFS實(shí)例應(yīng)該能支撐數(shù)以千萬(wàn)計(jì)的文件。4簡(jiǎn)單的一致性模型HDFS應(yīng)用需要一個(gè)一次寫(xiě)入多次讀取”的文件訪問(wèn)模型。一個(gè)文件經(jīng)過(guò)創(chuàng)建、寫(xiě)入和關(guān)閉之后就不需要 改變。這一假設(shè)簡(jiǎn)化了數(shù)據(jù)一致性問(wèn)題,并且使高吞吐量的數(shù)據(jù)訪問(wèn)成為可能。Ma

5、p/Reduce 應(yīng)用或者網(wǎng)絡(luò)爬蟲(chóng)應(yīng)用都非常適合這個(gè)模型。目前還有計(jì)劃在將來(lái)擴(kuò)充這個(gè)模型,使之支持文件的附加寫(xiě)操作。5異構(gòu)軟硬件平臺(tái)間的可移植性HDFS在設(shè)計(jì)的時(shí)候就考慮到平臺(tái)的可移植性。這種特性方便了 HDFS作為大規(guī)模數(shù)據(jù)應(yīng)用平臺(tái)的推廣。6硬件錯(cuò)誤硬件錯(cuò)誤是常態(tài)而不是異常。HDFS可能由成百上千的服務(wù)器所構(gòu)成,每個(gè)服務(wù)器上存儲(chǔ)著文件系統(tǒng)的部分?jǐn)?shù)據(jù)。我們面對(duì)的現(xiàn)實(shí)是構(gòu)成系統(tǒng)的組件數(shù)目是巨大的,而且任一組件都有可能失效,這意味著總是有一部分HDFS的組件是不工作的。因此錯(cuò)誤檢測(cè)和快速、自動(dòng)的恢復(fù)是 HDFS最核心的架構(gòu)目標(biāo)。二HDFS重要名詞解釋HDFS 采用 master/slave 架構(gòu)。

6、一個(gè) HDFS 集群是由一個(gè) Namenode 和一定數(shù)目的 Datanodes 組 成。Namenode 是一個(gè)中心服務(wù)器,負(fù)責(zé)管理文件系統(tǒng)的名字空間(namespace)以及客戶端對(duì)文件的訪問(wèn)。集群中的Datanode 一般是一個(gè)節(jié)點(diǎn)一個(gè),負(fù)責(zé)管理它所在節(jié)點(diǎn)上的存儲(chǔ)。HDFS暴露了文件系統(tǒng)的名字空間,用戶能夠以文件的形式在上面存儲(chǔ)數(shù)據(jù)。從內(nèi)部看,一個(gè)文件其實(shí)被分成一個(gè)或多個(gè)數(shù)據(jù)塊,這些塊存儲(chǔ) 在一組Datanode 上。Namenode 執(zhí)行文件系統(tǒng)的名字空間操作,比如打開(kāi)、關(guān)閉、重命名文件或目錄。它 也負(fù)責(zé)確定數(shù)據(jù)塊到具體Datanode 節(jié)點(diǎn)的映射。Datanode 負(fù)責(zé)處理文件系統(tǒng)客

7、戶端的讀寫(xiě)請(qǐng)求。在Namenode的統(tǒng)一調(diào)度下進(jìn)行數(shù)據(jù)塊的創(chuàng)建、刪除和復(fù)制。集群中單一 Namenode 的結(jié)構(gòu)大大簡(jiǎn)化了系統(tǒng)的架構(gòu)。Namenode 是所有HDFS元數(shù)據(jù)的仲裁者和管理者,這樣,用戶數(shù)據(jù)永遠(yuǎn)不會(huì)流過(guò)Namenode 。1 Namenode(1 ) HDFS的守護(hù)程序。(2)記錄文件時(shí)如何分割成數(shù)據(jù)塊的,以及這些數(shù)據(jù)塊被存數(shù)到那些借點(diǎn)上。(3)對(duì)內(nèi)存和I/O 進(jìn)行集中管理(4) namenode 是單個(gè)節(jié)點(diǎn),發(fā)生故障將使集群崩潰。2 secondary Namenode(1 )監(jiān)控HDFS狀態(tài)的輔助后臺(tái)程序(2) secondary Namenode 與namenode 通訊,

8、定期保存 HDFS元數(shù)據(jù)快照。(3)當(dāng)namenode故障時(shí)候,secondary Namenode可以作為備用 namenode 使用 3 DatanodeDatanode 將HDFS數(shù)據(jù)以文件的形式存儲(chǔ)在本地的文件系統(tǒng)中,它并不知道有關(guān)HDFS文件的信息。它把每個(gè)HDFS數(shù)據(jù)塊存儲(chǔ)在本地文件系統(tǒng)的一個(gè)單獨(dú)的文件中。Datanode 并不在同一個(gè)目錄創(chuàng)建所有的文件,實(shí)際上,它用試探的方法來(lái)確定每個(gè)目錄的最佳文件數(shù)目,并且在適當(dāng)?shù)臅r(shí)候創(chuàng)建子目錄。4 jobTracker(1)用于處理作業(yè)的后臺(tái)程序(2)決定有哪些文件參與處理,然后切割task并分配節(jié)點(diǎn)(3)監(jiān)控task ,重啟失敗的task(

9、4)每個(gè)集群只有唯一一個(gè)jobTracker ,位于 Master。5 TaskTracker(1) 位于 slave 節(jié)點(diǎn)上,與 datanode 結(jié)合(2)管理各自節(jié)點(diǎn)上的 task (由jobTracker 分配)(3)每個(gè)節(jié)點(diǎn)只有一個(gè) tasktracker ,但一個(gè)tasktracker可以啟動(dòng)多個(gè) JVM,(4) 與 jobtracker 交互三HDFS數(shù)據(jù)存儲(chǔ)1 HDFS數(shù)據(jù)存儲(chǔ)特點(diǎn)(1) HDFS被設(shè)計(jì)成能夠在一個(gè)大集群中跨機(jī)器可靠地存儲(chǔ)超大文件。(2)它將每個(gè)文件存儲(chǔ)成一系列的數(shù)據(jù)塊,除了最后一個(gè),所有的數(shù)據(jù)塊都是同樣大小的,數(shù)據(jù)塊的大 小是可以配置的。(3)文件的所有數(shù)據(jù)塊

10、都會(huì)有副本。每個(gè)副本系數(shù)都是可配置的。(4)應(yīng)用程序可以指定某個(gè)文件的副本數(shù)目。(5) HDFS中的文件都是一次性寫(xiě)入的,并且嚴(yán)格要求在任何時(shí)候只能有一個(gè)寫(xiě)入者。2心跳機(jī)制Namenode 全權(quán)管理數(shù)據(jù)塊的復(fù)制, 它周期性地從集群中的每個(gè) Datanode 接收心跳信號(hào)和塊狀態(tài)報(bào)告 (Blockreport) 。接收到心跳信號(hào)意味著該 Datanode 節(jié)點(diǎn)工作正常。塊狀態(tài)報(bào)告包含了一個(gè)該Datanode上所有數(shù)據(jù)塊的列表。3副本存放副本的存放是HDFS可靠性和性能的關(guān)鍵。HDFS采用一種稱為機(jī)架感知 (rack-aware)的策略來(lái)改進(jìn)數(shù)據(jù)的可靠性、可用性和網(wǎng)絡(luò)帶寬的利用率。4副本選擇為了降

11、低整體的帶寬消耗和讀取延時(shí),HDFS會(huì)盡量讓讀取程序讀取離它最近的副本。如果在讀取程序的同一個(gè)機(jī)架上有一個(gè)副本,那么就讀取該副本。如果一個(gè) HDFS集群跨越多個(gè)數(shù)據(jù)中心,那么客戶端也將首先讀本地?cái)?shù)據(jù)中心的副本O5安全模式Namenode 啟動(dòng)后會(huì)進(jìn)入一個(gè)稱為安全模式的特殊狀態(tài)。處于安全模式的Namenode是不會(huì)進(jìn)行數(shù)據(jù)塊的復(fù)制的。Namenode 從所有的Datanode 接收心跳信號(hào)和塊狀態(tài)報(bào)告。四HDFS數(shù)據(jù)健壯性HDFS的主要目標(biāo)就是即使在出錯(cuò)的情況下也要保證數(shù)據(jù)存儲(chǔ)的可靠性。常見(jiàn)的三種出錯(cuò)情況是:Namenode出錯(cuò),Datanode 出錯(cuò)和網(wǎng)絡(luò)割裂 (network partiti

12、ons) 。1磁盤(pán)數(shù)據(jù)錯(cuò)誤,心跳檢測(cè)和重新復(fù)制每個(gè)Datanode 節(jié)點(diǎn)周期性地向 Namenode 發(fā)送心跳信號(hào)。網(wǎng)絡(luò)割裂可能導(dǎo)致一部分Datanode 跟Namenode 失去聯(lián)系。Namenode 通過(guò)心跳信號(hào)的缺失來(lái)檢測(cè)這一情況,并將這些近期不再發(fā)送心跳信號(hào) Datanode 標(biāo)記為宕機(jī),不會(huì)再將新的IO請(qǐng)求發(fā)給它們。任彳存儲(chǔ)在宕機(jī)Datanode 上的數(shù)據(jù)將不再有效。Datanode 的宕機(jī)可能會(huì)引起一些數(shù)據(jù)塊的副本系數(shù)低于指定值,Namenode 不斷地檢測(cè)這些需要復(fù)制的數(shù)據(jù)塊,一旦發(fā)現(xiàn)就啟動(dòng)復(fù)制操作。在下列情況下,可能需要重新復(fù)制:某個(gè)Datanode 節(jié)點(diǎn)失效,某個(gè)副本遭到損壞

13、,Datanode 上的硬盤(pán)錯(cuò)誤,或者文件的副本系數(shù)增大。2集群均衡HDFS的架構(gòu)支持?jǐn)?shù)據(jù)均衡策略。如果某個(gè)Datanode 節(jié)點(diǎn)上的空閑空間低于特定的臨界點(diǎn),按照均衡策略系統(tǒng)就會(huì)自動(dòng)地將數(shù)據(jù)從這個(gè)Datanode 移動(dòng)到其他空閑的 Datanode 。當(dāng)對(duì)某個(gè)文件的請(qǐng)求突然增加,那么也可能啟動(dòng)一個(gè)計(jì)劃創(chuàng)建該文件新的副本,并且同時(shí)重新平衡集群中的其他數(shù)據(jù)。這些均衡策略目前還沒(méi)有實(shí)現(xiàn)。3數(shù)據(jù)完整性從某個(gè)Datanode 獲取的數(shù)據(jù)塊有可能是損壞的,損壞可能是由 Datanode的存儲(chǔ)設(shè)備錯(cuò)誤、網(wǎng)絡(luò)錯(cuò)誤或者軟件bug造成的。HDFS客戶端軟件實(shí)現(xiàn)了對(duì)HDFS文件內(nèi)容的校驗(yàn)和(checksum) 檢

14、查。當(dāng)客戶端創(chuàng)建一個(gè)新的HDFS文件,會(huì)計(jì)算這個(gè)文件每個(gè)數(shù)據(jù)塊的校驗(yàn)和,并將校驗(yàn)和作為一個(gè)單獨(dú)的隱藏文件保存在 同一個(gè)HDFS名字空間下。當(dāng)客戶端獲取文件內(nèi)容后,它會(huì)檢驗(yàn)從 Datanode 獲取的數(shù)據(jù)跟相應(yīng)的校驗(yàn)和文 件中的校驗(yàn)和是否匹配,如果不匹配,客戶端可以選擇從其他Datanode 獲取該數(shù)據(jù)塊的副本。4元數(shù)據(jù)磁盤(pán)錯(cuò)誤FsImage 和Editlog 是HDFS的核心數(shù)據(jù)結(jié)構(gòu)。如果這些文件損壞了,整個(gè) HDFS實(shí)例都將失效。因 而,Namenode 可以配置成支持維護(hù)多個(gè)FsImage 和Editlog 的副本。任何對(duì)FsImage 或者Editlog 的修改,都將同步到它們的副本上。這種多副本的同步操作可能會(huì)降低Namenode 每秒處理的名字空間事務(wù)數(shù)量。然而這個(gè)代價(jià)是可以接受的,因?yàn)榧词?HDFS的應(yīng)用是數(shù)據(jù)密集的,它們也非元數(shù)據(jù)密集的。當(dāng) Namenode 重啟的時(shí)候,它會(huì)選取最近的

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論