下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、由于云計(jì)算分為IaaSPaaS 和 SaaS 3 圖3云計(jì)算技術(shù)體系結(jié)構(gòu)4 層:物理資源層、資源池層、管理中間件層和SOA 構(gòu)建層,如圖 3 2000 個(gè)服務(wù)器 構(gòu)建層將云計(jì)算能力封裝成標(biāo)準(zhǔn)的Web Services 服務(wù),并納入到SOA 體系進(jìn)行管理和使用,包括服務(wù)注冊構(gòu)建層的功能更多依靠外部設(shè)施提供。(Image)的部署 基于上述體系結(jié)構(gòu),本文以IaaS 云計(jì)算為例,簡述云計(jì)算的實(shí)現(xiàn)機(jī)制,如圖4 所示。用戶交互接口向應(yīng)用以Web ServicesHadoop HDFS 特性簡介一、設(shè)計(jì)思想1、硬件失效是“常態(tài)事件“,而非“偶然事件”。HDFS 可能是有上千的機(jī)器組成(文檔中描述的Yahoo
2、!一個(gè) Hadoop 集群有 4096 個(gè)節(jié)點(diǎn)),任何一個(gè)組件都有可能一直失效,因此數(shù)據(jù)的健壯性錯(cuò)誤檢測和快速、自動(dòng)的恢復(fù)是HDFS 的核心架構(gòu)目標(biāo)。2、 流式數(shù)據(jù)訪問。運(yùn)行在 HDFS 上的應(yīng)用和普通的應(yīng)用不同,需要流式訪問它們的數(shù)據(jù)集。HDFS 的設(shè)計(jì)中更多的考慮到了數(shù)據(jù)批處理,而不是用戶交互處理。比之?dāng)?shù)據(jù)訪問的低延遲問題,更關(guān)鍵的在于數(shù)據(jù)并發(fā)訪問的高吞吐量。POSIX 標(biāo)準(zhǔn)設(shè)置的很多硬性約束對HDFS 應(yīng)用系統(tǒng)不是必需的。為了提高數(shù)據(jù)的吞吐量,在一些關(guān)鍵方面對 POSIX 的語義做了一些修改。3、 HDFS 應(yīng)用對文件要求的是write-one-read-many典型的如MapReduc
3、eweb crawler45、在異構(gòu)的軟硬件平臺間的可移植性。二、Namenode 和 Datanode 的劃分一個(gè) HDFS 集群有一個(gè)Namenode 和一定數(shù)目的Datanode 組成。Namenodenamespace 在集群中會(huì)有多個(gè),一般是一個(gè)節(jié)點(diǎn)存在一個(gè),負(fù)責(zé)管理其自身節(jié)點(diǎn)上它們附帶的存儲(chǔ)。在內(nèi)部,一個(gè)大文件其分成一個(gè)或多個(gè)block,這些block 存儲(chǔ)在Datanode 集合 里Namenode 執(zhí)行文件系統(tǒng)的namespace同時(shí)決定了block 到具體DatanodeDatanodeNamenode 的指揮下進(jìn)行block 的創(chuàng)建、刪除和復(fù)制。單一節(jié)點(diǎn)的NamenodeN
4、amenode 負(fù)責(zé)保管和管理所有的HDFSNamenodeNamenode 參與而直接從Datanode 進(jìn)行。為了提高Namenode 的性能,所有文件的namespace 數(shù)據(jù)都在內(nèi)存中維護(hù),所以就天生存在了由于內(nèi)存大小的限制導(dǎo)致一個(gè)HDFS 集群的提供服務(wù)的文件數(shù)量的上限。根據(jù)目前的文檔,一個(gè)元數(shù)據(jù)(一個(gè)HDFS 文件塊兒)占用200Bytes,如果是頁面抓取的小文件,那么 32GB 內(nèi)存能承載 1.5 億左右的文件存儲(chǔ)(有待精確詳細(xì)測試)。三、文件系統(tǒng)操作和 namespace 的關(guān)系HDFS 支持傳統(tǒng)的層次型文件組織,與大多數(shù)其他文件系統(tǒng)類似,用戶可以創(chuàng)建目錄,并在其HDFS 不支
5、持user quotasNamenode 維護(hù)文件系統(tǒng)的任何對文件系統(tǒng)namespaceNamenodeHDFS保存的文件的副本數(shù)目,文件副本的數(shù)目稱為文件的 replicationNamenode四、數(shù)據(jù)復(fù)制HDFS 被設(shè)計(jì)成在一個(gè)大集群中可以跨機(jī)器地可靠地存儲(chǔ)海量的文件。它將每個(gè)文件存儲(chǔ)成block 序列,除了最后一個(gè)block,所有的block 都是同樣的大小。文件的所有block 為了容錯(cuò)都會(huì)被復(fù)制。每個(gè)文件的block 大小和replication 因子都是可配置的。Replication 因子可以在文件創(chuàng)建的時(shí)候配置,以后也可以改變。HDFS 中的文件是write-one,并且嚴(yán)格
6、要求在任何時(shí)候只有一個(gè)writer。Namenode 全權(quán)管理block 的復(fù)制,它周期性地從集群中的每個(gè)Datanode 接收心跳包和一個(gè)Blockreport。心跳包的接收表示該 Datanode 節(jié)點(diǎn)正常工作,而Blockreport 包括了該Datanode 上所有的block 組成的列表。1、副本的存放,副本的存放是HDFS 可靠性和性能的關(guān)鍵。龐大的HDFS 實(shí)例一般運(yùn)行在多況下,同一個(gè)機(jī)架內(nèi)的兩個(gè)節(jié)點(diǎn)間的帶寬會(huì)比不同機(jī)架間的兩臺機(jī)器的帶寬大。2 會(huì)盡量讓reader 讀最近的副本。如果在readerHDFS數(shù)據(jù)中心,那么reader3、SafeModeNamenode 啟動(dòng)后會(huì)進(jìn)
7、入一個(gè)稱為SafeMode 的特殊狀態(tài),處在這個(gè)狀態(tài)的NamenodeNamenodeDatanodeBlockreport。Blockreport包括了某個(gè)Datanode 所有的數(shù)據(jù)塊列表。每個(gè)block 都有指定的最小數(shù)目的副本。當(dāng)Namenode 檢測確認(rèn)某個(gè)DatanodeDatanode(這個(gè)參數(shù)可配置Namenode 將退出SafeModeblockDatanode。五、文件系統(tǒng)元數(shù)據(jù)的持久化NamenodeHDFS個(gè)稱為EditlogHDFSNamenodereplication 因子也將往 EditlogNamenode 在本地OS 的文件系統(tǒng)中存儲(chǔ)這個(gè)Editlogbloc
8、kFsImageNamenodeNamenode 在內(nèi)存中保存著整個(gè)文件系統(tǒng)namespace 和文件Blockmap數(shù)據(jù)設(shè)計(jì)得很緊湊,一般為200Bytes4G 內(nèi)存的 Namenode支撐海量的文件和目錄。當(dāng)NamenodeEditlogFsImage,將所Editlog(apply)在內(nèi)存中的FsImage ,并將這個(gè)新版本的FsImageflush 到硬盤上,然后再truncate 這個(gè)舊的Editlog已經(jīng)作用在FsImage 上了。這個(gè)過程稱為checkpoint。在當(dāng)前實(shí)現(xiàn)中,checkpoint 只發(fā)生Namenodecheckpoint。Datanode 并不知道關(guān)于文件的任
9、何東西,除了將文件中的數(shù)據(jù)保存在本地的文件系統(tǒng)上。它把每個(gè)HDFSDatanodeDatanode 啟動(dòng)時(shí),它掃描本地文件系統(tǒng), 對這些本地文件產(chǎn)生相應(yīng)的一個(gè)所有HDFS 數(shù)據(jù)塊的列表,然后發(fā)送報(bào)告到Namenode報(bào)告就是Blockreport。六、通訊協(xié)議所有的HDFSTCP/IPClientProtocolNamenodeDatanode 是使用DatanodeProtocol Namenode 交互。從ClientProtocol 和 Datanodeprotocol(RPC), 在設(shè)計(jì)上,Namenode 不會(huì)主動(dòng)發(fā)起RPC,而是是響應(yīng)來自客戶端和 Datanode 的 RPC七、健
10、壯性HDFS 的主要目標(biāo)就是實(shí)現(xiàn)在失敗情況下的數(shù)據(jù)存儲(chǔ)可靠性。常見的三種失敗:Namenode failures, Datanode failures 和網(wǎng)絡(luò)分割(network partitions)。1、硬盤數(shù)據(jù)錯(cuò)誤、心跳檢測和重新復(fù)制每個(gè)Datanode 節(jié)點(diǎn)都向Namenode 周期性地發(fā)送心跳包Datanode Namenode 失去聯(lián)系。 NamenodeDatanode 標(biāo)記為dead,不會(huì)將新的IO 請求發(fā)給它們。寄存在dead Datanode效。Datanode 的死亡可能引起一些blockNamenode要復(fù)制的 block,在任何需要的情況下啟動(dòng)復(fù)制。在下列情況可能需要
11、重新復(fù)制:某個(gè)Datanodereplication 因子增大。2、集群均衡HDFS 支持?jǐn)?shù)據(jù)的均衡計(jì)劃,如果某個(gè)Datanode就會(huì)啟動(dòng)一個(gè)計(jì)劃自動(dòng)地將數(shù)據(jù)從一個(gè)Datanode 搬移到空閑的Datanode3、數(shù)據(jù)完整性從某個(gè)DatanodeDatanode錯(cuò)誤、網(wǎng)絡(luò)錯(cuò)誤或者軟件bugHDFS 客戶端軟件實(shí)現(xiàn)了HDFS某個(gè)客戶端創(chuàng)建一個(gè)新的HDFS 文件,會(huì)計(jì)算這個(gè)文件每個(gè)block 的校驗(yàn)和,并作為一個(gè)單獨(dú)的隱藏文件保存這些校驗(yàn)和在同一個(gè)HDFS namespace確認(rèn)從Datanode 獲取的數(shù)據(jù)跟相應(yīng)的校驗(yàn)和文件中的校驗(yàn)和是否匹配,如果不匹配,客戶端可以選擇從其他Datanode 獲
12、取該block 的副本。4、元數(shù)據(jù)磁盤錯(cuò)誤FsImage 和EditlogHDFSHDFS 可以配置成支持維護(hù)多個(gè)FsImage 和EditlogFsImage 或者 Editlog 的修改,都將同步到它們的副本上。這個(gè)同步操作可能會(huì)降低Namenode能支持處理的namespace 事務(wù)。這個(gè)代價(jià)是可以接受的,因?yàn)镠DFS數(shù)據(jù)密集。當(dāng)NamenodeFsImageEditlogHDFS 是單點(diǎn)存在,如果NamenodeNamenode八、數(shù)據(jù)組織1、數(shù)據(jù)塊兼容 HDFS 的應(yīng)用都是處理大數(shù)據(jù)集合的。這些應(yīng)用都是寫數(shù)據(jù)一次,讀卻是一次到多次, 并且讀的速度要滿足流式讀。HDFS 支持文件的wr
13、ite-once,read-many。一個(gè)典型的block 大小是 64MB,因而,文件總是按照 64M 切分成chunk,每個(gè)chunk 存儲(chǔ)于不同的Datanode 上。2、數(shù)據(jù)產(chǎn)生步驟某個(gè)客戶端創(chuàng)建文件的請求其實(shí)并沒有立即發(fā)給Namenode,事實(shí)上,HDFS 客戶端會(huì)將文件件累積的數(shù)據(jù)超過一個(gè)block 的大?。J(rèn)64M),客戶端才會(huì)聯(lián)系NamenodeNamenode 將文件名插入文件系統(tǒng)的層次結(jié)構(gòu)中,并且分配一個(gè)數(shù)據(jù)塊給它,然后返回Datanode 的標(biāo)識符和目標(biāo)數(shù)據(jù)塊給客戶端??蛻舳藢⒈镜嘏R時(shí)文件flush 到指定的 Datanode閉時(shí),在臨時(shí)文件中剩余的沒有flush 的數(shù)
14、據(jù)也會(huì)傳輸?shù)街付ǖ腄atanode,然后客戶端告NamenodeNamenode上述方法是對通過對HDFS 上運(yùn)行的目標(biāo)應(yīng)用認(rèn)真考慮的結(jié)果。如果不采用客戶端緩存,由于網(wǎng)絡(luò)速度和網(wǎng)絡(luò)堵塞會(huì)對吞估量造成比較大的影響。3、數(shù)據(jù)塊復(fù)制當(dāng)某個(gè)客戶端向HDFS因子設(shè)置為Namenode獲取一張Datanode然后客戶端開始向第一個(gè)Datanode 傳輸數(shù)據(jù),第一個(gè)Datanode 一小部分一小部分地接收數(shù)據(jù),將每個(gè)部分寫入本地倉庫,并且同時(shí)傳輸該部分到第二個(gè)Datanode 節(jié)點(diǎn)。第二個(gè) Datanode三個(gè)Datanode,第三個(gè)Datanode九、訪問接口HDFSDFSShell 通過命令行與HDFS可以通過java API 調(diào)用,也可以通過C 語言的封裝API式。正在開發(fā)通過WebDav十、空間的回收1、文件的刪除和恢復(fù)用戶或者應(yīng)用刪除某個(gè)文件,這個(gè)文件并沒有立刻從HDFS 中刪除。相反, 將這個(gè)文件mv/trash/trash/trash 就會(huì)將/trash 文件批量從namespace 中刪除。文件的刪除,也將釋放關(guān)聯(lián)該文件的數(shù)據(jù)塊。并且需要注意的是HDFS當(dāng)被刪除的文件還保留在/tra
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初三生活指南模板
- 財(cái)務(wù)風(fēng)險(xiǎn)管理報(bào)告模板
- 家屬追悼會(huì)致辭范文六篇
- 課程設(shè)計(jì)營銷
- 2024年幼兒園中班語言教案含反思
- 二零二五年度面包磚施工安全生產(chǎn)責(zé)任合同4篇
- 2024年心理咨詢師題庫及完整答案(易錯(cuò)題)
- 二零二五年社區(qū)圖書館圖書采購合同2篇
- 二零二五年度在線教育平臺學(xué)員免責(zé)協(xié)議書范本4篇
- 高分子防水卷材施工方案
- 第7課《中華民族一家親》(第一課時(shí))(說課稿)2024-2025學(xué)年統(tǒng)編版道德與法治五年級上冊
- 2024年醫(yī)銷售藥銷售工作總結(jié)
- 急診科十大護(hù)理課件
- 山東省濟(jì)寧市2023-2024學(xué)年高一上學(xué)期1月期末物理試題(解析版)
- GB/T 44888-2024政務(wù)服務(wù)大廳智能化建設(shè)指南
- 2025年上半年河南鄭州滎陽市招聘第二批政務(wù)輔助人員211人筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 山東省濟(jì)南市歷城區(qū)2024-2025學(xué)年七年級上學(xué)期期末數(shù)學(xué)模擬試題(無答案)
- 國家重點(diǎn)風(fēng)景名勝區(qū)登山健身步道建設(shè)項(xiàng)目可行性研究報(bào)告
- 投資計(jì)劃書模板計(jì)劃方案
- 《接觸網(wǎng)施工》課件 3.4.2 隧道內(nèi)腕臂安裝
- 2024-2025學(xué)年九年級語文上學(xué)期第三次月考模擬卷(統(tǒng)編版)
評論
0/150
提交評論