




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Hadoop,電子工業(yè)出版社 劉鵬主編云計(jì)算教材配套課件8,主要內(nèi)容,Hadoop項(xiàng)目簡(jiǎn)介 HDFS體系結(jié)構(gòu) HDFS關(guān)鍵運(yùn)行機(jī)制 Hadoop VS.Google(分布式文件系統(tǒng)) Hadoop API Hadoop環(huán)境搭建,Hadoop項(xiàng)目簡(jiǎn)介,Apache的解決方案,GFS-HDFS MapReduce-HadoopBigTable-HBase,Hadoop項(xiàng)目簡(jiǎn)介,HDFS為了做到可靠性(reliability)創(chuàng)建了多份數(shù)據(jù)塊(data blocks)的復(fù)制(replicas),并將它們放置在服務(wù)器群的計(jì)算節(jié)點(diǎn)中(compute nodes),MapReduce就可以在它們所在的節(jié)點(diǎn)
2、上處理這些數(shù)據(jù)了。,HDFS體系結(jié)構(gòu),NameNodeMaster DataNodeChunksever,HDFS關(guān)鍵運(yùn)行機(jī)制-保障可靠性的措施,一個(gè)名字節(jié)點(diǎn)和多個(gè)數(shù)據(jù)節(jié)點(diǎn) 數(shù)據(jù)復(fù)制(冗余機(jī)制) -存放的位置(機(jī)架感知策略) 故障檢測(cè) -數(shù)據(jù)節(jié)點(diǎn) 心跳包(檢測(cè)是否宕機(jī)) 塊報(bào)告(安全模式下檢測(cè)) 數(shù)據(jù)完整性檢測(cè)(校驗(yàn)和比較) -名字節(jié)點(diǎn)(日志文件,鏡像文件) 空間回收機(jī)制,HDFS關(guān)鍵運(yùn)行機(jī)制-寫文件流程,客戶端緩存 流水線復(fù)制 并發(fā)寫控制 流程: 1.客戶端把數(shù)據(jù)緩存到本地臨時(shí)文件夾 2.臨時(shí)文件夾數(shù)據(jù)超過(guò)64M,客戶端聯(lián)系NameNode, NameNode分配DataNode,DataN
3、ode依照客戶端的位置被排列成一個(gè)有著最近物理距離和最小的序列 3.與序列的第一個(gè)數(shù)據(jù)服務(wù)器建立Socket連接,發(fā)送請(qǐng)求頭,然后等待回應(yīng),依次下傳,客戶端得到回包,流水線建立成功, 4. 正式發(fā)送數(shù)據(jù),以4K為大小傳送,HDFS關(guān)鍵運(yùn)行機(jī)制-讀文件流程,客戶端聯(lián)系NameNode,得到所有數(shù)據(jù)塊信息,以及數(shù)據(jù)塊對(duì)應(yīng)的所有數(shù)據(jù)服務(wù)器的位置信息 嘗試從某個(gè)數(shù)據(jù)塊對(duì)應(yīng)的一組數(shù)據(jù)服務(wù)器中選出一個(gè),進(jìn)行連接(選取算法未加入相對(duì)位置的考慮) 數(shù)據(jù)被一個(gè)包一個(gè)包發(fā)送回客戶端,等到整個(gè)數(shù)據(jù)塊的數(shù)據(jù)都被讀取完了,就會(huì)斷開此鏈接,嘗試連接下一個(gè)數(shù)據(jù)塊對(duì)應(yīng)的數(shù)據(jù)服務(wù)器,整個(gè)流程,依次如此反復(fù),直到所有想讀的都讀取
4、完了為止,Hadoop VS. Google,技術(shù)架構(gòu)的比較 數(shù)據(jù)結(jié)構(gòu)化管理組件:HbaseBigTable 并行計(jì)算模型:MapReduceMapReduce 分布式文件系統(tǒng):HDFSGFS Hadoop缺少分布式鎖服務(wù)Chubby,HBase,MapReduce,HDFS,BigTable,MapReduce,GFS,Hadoop云計(jì)算應(yīng)用,Chubby,Google云計(jì)算應(yīng)用,Hadoop VS. Google,HDFS與GFS比較 中心服務(wù)器模式的差異 GFS:多臺(tái)物理服務(wù)器,選擇一臺(tái)對(duì)外服務(wù),損壞時(shí)可選擇另外一臺(tái)提供服務(wù) HDFS:?jiǎn)我恢行姆?wù)器模式,存在單點(diǎn)故障 原因:Hadoop
5、缺少分布式鎖服務(wù),Hadoop VS. Google,HDFS與GFS比較 子服務(wù)器管理模式差異 GFS:Chunk Server在Chubby中獲取獨(dú)占鎖表示其生存狀態(tài),Master通過(guò)輪詢這些獨(dú)占鎖獲知Chunk Server的生存狀態(tài) HDFS:DataNode通過(guò)心跳的方式告知NameNode其生存狀態(tài) GFS中,Master損壞時(shí),替補(bǔ)服務(wù)器可以快速獲知Chunk Server的狀態(tài) HDFS中,NameNode損壞后,NameNode恢復(fù)時(shí)需要花費(fèi)一段時(shí)間獲知DataNode的狀態(tài) 在添加數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn)時(shí),GFS的伸縮性較HDFS要好 原因:Hadoop缺乏分布式鎖服務(wù),Hadoop
6、 VS. Google,HDFS與GFS比較 HDFS具備安全模式 獲知數(shù)據(jù)塊副本狀態(tài),若副本不足,則拷貝副本至安全數(shù)目(如3個(gè)) GFS不具備安全模式 副本損壞處理:API讀取副本失敗時(shí),Master負(fù)責(zé)發(fā)起拷貝任務(wù),Hadoop VS. Google,HDFS與GFS比較 HDFS具備空間回收機(jī)制 文件刪除時(shí),僅刪除目錄結(jié)構(gòu) 實(shí)際數(shù)據(jù)的刪除在等待一段時(shí)間后實(shí)施 優(yōu)點(diǎn):便于恢復(fù)文件,HDFS API,Hadoop API被分成(divide into)如下幾種主要的包(package): org.apache.hadoop.conf定義了系統(tǒng)參數(shù)的配置文件處理API。 org.apache.
7、hadoop.fs定義了抽象的文件系統(tǒng)API。 org.apache.hadoop.HdfsHDFS,Hadoop的分布式文件系統(tǒng)實(shí)現(xiàn)。 org.apache.hadoop.io定義了通用的I/O API,用于針對(duì)網(wǎng)絡(luò),數(shù)據(jù)庫(kù),文件等數(shù)據(jù)對(duì)象做讀寫操作。 org.apache.hadoop.ipc用于網(wǎng)絡(luò)服務(wù)端和客戶端的工具,封裝了網(wǎng)絡(luò)異步I/O的基礎(chǔ)模塊。 org.apache.hadoop.mapreduceHadoop分布式計(jì)算系統(tǒng)(MapReduce)模塊的實(shí)現(xiàn),包括任務(wù)的分發(fā)調(diào)度等。 org.apache.hadoop.metrics定義了用于性能統(tǒng)計(jì)信息的API,主要用于mapre
8、d和dfs模塊。 org.apache.hadoop.record 定義了針對(duì)記錄的I/O API類以及一個(gè)記錄描述語(yǔ)言翻譯器,用于簡(jiǎn) 化將記錄序列化成語(yǔ)言中性的格式(language-neutral manner)。 org.apache.hadoop.tools定義了一些命令行的工具。 org.apache.hadoop.util定義了一些公用的API。 org.apache.hadoop.Secruity 用戶和用戶組信息,HDFS API-org.apache.hadoop.fs,org.apache.hadoop.fs.FileSystem (implements java.io.C
9、loseable) org.apache.hadoop.fs.FilterFileSystem org.apache.hadoop.fs.ChecksumFileSystem org.apache.hadoop.fs.InMemoryFileSystem org.apache.hadoop.fs.LocalFileSystem org.apache.hadoop.fs.HarFileSystem org.apache.hadoop.fs.RawLocalFileSystem 抽象文件系統(tǒng)的基本要素和基本操作。最顯著的一個(gè)特點(diǎn)就是,F(xiàn)ileSystem文件系統(tǒng)是基于流式數(shù)據(jù)訪問(wèn)的,并且,可以基于
10、命令行的方式來(lái)對(duì)文件系統(tǒng)的文件進(jìn)行管理與操作。,HDFS API-org.apche.hadoop.ipc,。org.apache.hadoop.ipc.VersionedProtocol 。tocol.ClientProtocol 。tocol.ClientDatanodeProtocol 。tocol.NamenodeProtocol 。tocol.Data
11、nodeProtocol 。tocol.InterDatanodeProtocol,HDFS API-org.apache.hadoop.HDFS,ClientProtocol協(xié)議:客戶端進(jìn)程與Namenode進(jìn)程進(jìn)行通信 DataNodeProtocol協(xié)議:一個(gè)DFS Datanode用戶與Namenode進(jìn)行通信的協(xié)議 InterDatanodeProtocol協(xié)議:Datanode之間的通信 ClientDatanodeProtocol協(xié)議 :客戶端進(jìn)程與datenode進(jìn)程進(jìn)行通信 NamenodeProtocol協(xié)議
12、 :次級(jí)Namenode(Secondary NameNode)與Namenode進(jìn)行通信所需進(jìn)行的操作,Namenode主要實(shí)現(xiàn)了ClientProtocol,DatanodeProtocol,NamenodeProtocol,HDFS API- ClientProtocol(文件基本操作接口),獲取到指定文件src的全部塊的信息返回LocatedBlocks,包括文件長(zhǎng)度、組成文件的塊及其存儲(chǔ)位置(所在的Datanode數(shù)據(jù)結(jié)點(diǎn)) -publicLocatedBlocksgetBlockLocations(Stringsrc,longoffset, longlength) 在制定的文件系統(tǒng)
13、命名空間中創(chuàng)建一個(gè)文件入口(entry) ,在命名空間中創(chuàng)建一個(gè)文件入口。該方法將創(chuàng)建一個(gè)由src路徑指定的空文件 -publicvoidcreate(Stringsrc,FsPermissionmasked,StringclientName, booleanoverwrite,shortreplication,longblockSize) 對(duì)指定文件執(zhí)行追加寫操作,返回信息,可以定位到追加寫入最后部分塊的信息 -publicLocatedBlockappend(Stringsrc,StringclientName) 設(shè)置副本因子,為一個(gè)指定的文件修改塊副本因子 -publicbooleans
14、etReplication(Stringsrc,shortreplication),HDFS API- ClientProtocol(文件基本操作接口),為已經(jīng)存在的目錄或者文件,設(shè)置給定的操作權(quán)限 -public void setPermission(String src, FsPermission permission) 設(shè)置文件或目錄屬主 -public void setOwner(String src, String username, String groupname) 客戶端放棄對(duì)指定塊的操作 -public void abandonBlock(Block b, String sr
15、c, String holder) 客戶端向一個(gè)當(dāng)前為寫操作打開的文件寫入數(shù)據(jù)塊 -public LocatedBlock addBlock(String src, String clientName) 客戶端完成對(duì)指定文件的寫操作,并期望能夠?qū)懲辏趯懲暌院箨P(guān)閉文件 -public boolean complete(String src, String clientName) 客戶端向Namenode報(bào)告corrupted塊的信息(塊在Datanode上的位置信息) -public void reportBadBlocks(LocatedBlock blocks) throws IOExce
16、ption,HDFS API- ClientProtocol(文件基本操作接口),在文件系統(tǒng)命令空間中重命名一個(gè)文件或目錄 -public boolean rename(String src, String dst) 刪除文件或目錄src -public boolean delete(String src) 刪除文件或目錄src,根據(jù)recursive選項(xiàng)來(lái)執(zhí)行 -public boolean delete(String src, boolean recursive) throws IOException; 創(chuàng)建目錄src,并賦予目錄src指定的nasked權(quán)限 -public boolean
17、 mkdirs(String src, FsPermission masked) throws IOException; 獲取指定目錄src中的文件列表 -public FileStatus getListing(String src) throws IOException;,HDFS API,文件讀取 在客戶端DFSClient中,有一個(gè) DFSClient.DFSInputStream類。當(dāng)需要讀取一個(gè)文件的時(shí)候,會(huì)生成一個(gè)DFSInputStream的實(shí)例 DFSInputStream的實(shí)例調(diào)用 ClientProtocol定義getBlockLocations接口,取得一個(gè) Locat
18、edBlocks類的對(duì)象,這個(gè)對(duì)象包含一組LocatedBlock,那里面有所規(guī)定位置中包含的所有數(shù)據(jù)塊信息,以及數(shù)據(jù)塊對(duì)應(yīng)的所有數(shù)據(jù)服務(wù)器的位置信息 讀取開始, DFSInputStream的Read方法 如有讀取時(shí)發(fā)現(xiàn)錯(cuò)誤,客戶端向Namenode報(bào)告corrupted塊的信息 publicvoidreportBadBlocks(LocatedBlockblocks),HDFS API,文件存入 DFSClient也有一個(gè) DFSClient.DFSOutputStream類,寫入開始,會(huì)創(chuàng)建此類的實(shí)例 DFSOutputStream會(huì)從NameNode上拿一個(gè) LocatedBlock
19、寫入開始,調(diào)用DFSOutputStream的Write方法,HDFS API- ClientProtocol(系統(tǒng)管理相關(guān)接口),監(jiān)聽客戶端,Namenode監(jiān)聽到某個(gè)客戶端發(fā)送的心跳狀態(tài) publicvoidrenewLease(StringclientName) 獲取文件系統(tǒng)的狀態(tài)統(tǒng)計(jì)數(shù)據(jù) -publiclonggetStats() 注:返回的數(shù)組: publicintGET_STATS_CAPACITY_IDX=0; publicintGET_STATS_USED_IDX=1; publicintGET_STATS_REMAINING_IDX=2; publicintGET_STATS
20、_UNDER_REPLICATED_IDX=3; publicintGET_STATS_CORRUPT_BLOCKS_IDX=4; publicintGET_STATS_MISSING_BLOCKS_IDX=5; 安全模式開關(guān)操作 publicbooleansetSafeMode(FSConstants.SafeModeActionaction),HDFS API- ClientProtocol(系統(tǒng)管理相關(guān)接口),保存FsImage映像,同時(shí)將更新同步到EditLog中,要求具有超級(jí)權(quán)限,并且在安全模式下進(jìn)行。 -publicvoidsaveNamespace() 持久化文件系統(tǒng)元數(shù)據(jù),將N
21、amenode結(jié)點(diǎn)上的數(shù)據(jù)結(jié)構(gòu)寫入到指定的文件中,如果指定文件已經(jīng)存在,則追加到該文件中 -metaSave(Stringfilename),Hadoop集群搭建,一、實(shí)驗(yàn)環(huán)境 1、三臺(tái)PC機(jī),Linux操作系統(tǒng) 各主機(jī)對(duì)應(yīng)的ip地址: 1 ubuntu1 2 ubuntu2 3 ubuntu3 2、Hadoop安裝包(/core/releases.html) 3、安裝jdk 1.5以上版本,1、在所有的機(jī)器上建立相同的用戶,例如:grid。,2、SSH配置,實(shí)現(xiàn)在機(jī)器之間執(zhí)行指令的時(shí)候不需要輸入密碼。,在ubuntu1(準(zhǔn)備設(shè)為namenode)上生成密鑰對(duì),執(zhí)行$ssh-ke
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度MCN藝人商業(yè)代言及合作合同
- 二零二五年度21世紀(jì)不動(dòng)產(chǎn)二手房購(gòu)房合同(稅費(fèi)減免優(yōu)惠)
- 二零二五Oracle企業(yè)級(jí)存儲(chǔ)解決方案定制合同
- 二零二五年度八寶山殯儀館鮮花制品定制及配送合同
- 超市中秋節(jié)促銷方案模板
- 校園安全防范活動(dòng)方案年模板
- 杠桿借款協(xié)議
- 中級(jí)消防員實(shí)操課件
- 普高招生考試方案及錄取方法調(diào)查問(wèn)卷
- 9.2.2平移的特征教案華東是的師大版七年級(jí)數(shù)學(xué)下冊(cè)
- GB/T 18380.33-2022電纜和光纜在火焰條件下的燃燒試驗(yàn)第33部分:垂直安裝的成束電線電纜火焰垂直蔓延試驗(yàn)A類
- 第一章-護(hù)理學(xué)基礎(chǔ)緒論
- 煙花爆竹經(jīng)營(yíng)單位安全管理人員培訓(xùn)教材課件
- J波與J波綜合征課件
- 微整面部美學(xué)設(shè)計(jì)面部風(fēng)水設(shè)計(jì)課件
- 5噸龍門吊安裝與拆除專項(xiàng)施工方案
- 康復(fù)科護(hù)理質(zhì)量監(jiān)測(cè)指標(biāo)
- 農(nóng)藥基本常識(shí)課件
- 六年級(jí)數(shù)學(xué)分?jǐn)?shù)除法、解方程計(jì)算題 (含答案)
- 高速鐵路竣工驗(yàn)收辦法
- 擬投入公路工程施工設(shè)備檢測(cè)儀器設(shè)備表
評(píng)論
0/150
提交評(píng)論