大數(shù)據(jù)技術(shù)課件第4章_第1頁
大數(shù)據(jù)技術(shù)課件第4章_第2頁
大數(shù)據(jù)技術(shù)課件第4章_第3頁
大數(shù)據(jù)技術(shù)課件第4章_第4頁
大數(shù)據(jù)技術(shù)課件第4章_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

大數(shù)據(jù)技術(shù)與應(yīng)用第4章HDFS分布式文件系統(tǒng)提綱4.1HDFS4.2HDFS操作實踐習(xí)題小結(jié)24.1HDFSHadoop分布式文件系統(tǒng)(HadoopDistributedFileSystem,HDFS)是Hadoop項目的核心子項目,它被設(shè)計成適合運行在通用硬件(commodityhardware)上的分布式文件系統(tǒng)。34.1HDFS4.2.1HDFSShellHDFS設(shè)計的前提和設(shè)計目標(biāo)如下:(1)硬件錯誤(2)流式數(shù)據(jù)訪問(3)大規(guī)模數(shù)據(jù)集(4)簡單的一致性模型(5)移動計算比移動數(shù)據(jù)更劃算(6)異構(gòu)軟硬件平臺間的可移植性但是HDFS也有自己的劣勢:①低時延長數(shù)據(jù)訪問②小文件存儲③并發(fā)寫入、文件隨機修改44.1HDFS4.2.1HDFSShellHDFS設(shè)計的前提和設(shè)計目標(biāo)如下:(1)硬件錯誤(2)流式數(shù)據(jù)訪問(3)大規(guī)模數(shù)據(jù)集(4)簡單的一致性模型(5)移動計算比移動數(shù)據(jù)更劃算(6)異構(gòu)軟硬件平臺間的可移植性但是HDFS也有自己的劣勢:①低時延長數(shù)據(jù)訪問②小文件存儲③并發(fā)寫入、文件隨機修改54.1HDFS4.1.2Namenode和DatanodeHDFS采用Master/Slave架構(gòu)。一個HDFS集群是由一個Namenode和一定數(shù)目54的Datanodes組成的。HDFS暴露了文件系統(tǒng)的名字空間,用戶能夠以文件的形式在上面存儲數(shù)據(jù),如下圖所示。6圖4-1HDFS架構(gòu)圖4-1HDFS架構(gòu)圖4-1HDFS架構(gòu)圖4-1HDFS架構(gòu)圖4-1HDFS架構(gòu)圖4-1HDFS架構(gòu)圖4-1HDFS架構(gòu)圖4-1HDFS架構(gòu)圖4-1HDFS架構(gòu)HDFS架構(gòu)4.1.3文件系統(tǒng)的名字空間HDFS支持傳統(tǒng)的層次型文件組織結(jié)構(gòu)Namenode負(fù)責(zé)維護文件系統(tǒng)的名字空間Namenode將對文件系統(tǒng)的改動追加保存到本地文件系統(tǒng)上的一個日志文件SecondaryNamenode定期合并fsimage和edits日志,將edits日志文件大小控制在一個限度下。SecondaryNamenode的檢查點進程啟動,是由兩個配置參數(shù)控制的:(1)fs.checkpoint.period(2)fs.checkpoint.sizeNamenode可以引入這個最新的檢查點:(1)在配置參數(shù).dir指定的位置建立一個空文件夾。

(2)把檢查點目錄的位置賦值給配置參數(shù)fs.checkpoint.dir。

(3)啟動Namenode,并加上-importCheckpoint。74.1HDFS(1)Block的副本放置策略在大多數(shù)情況下,副本系數(shù)是3,HDFS的存放策略是將一個副本存放在本地機架的節(jié)點上,一個副本放在同一機架的另一個節(jié)點上,最后一個副本放在不同機架的節(jié)點上。(2)副本選擇為了降低整體的帶寬消耗和讀取延時,HDFS會盡量讓讀取程序讀取離它最近的副本。(3)安全模式Namenode啟動后會進入一個稱為安全模式的特殊狀態(tài)。處于安全模式的Namenode是不會進行數(shù)據(jù)塊的復(fù)制的。(4)文件系統(tǒng)元數(shù)據(jù)的持久化Namenode上保存著HDFS的名字空間。對于任何對文件系統(tǒng)元數(shù)據(jù)產(chǎn)生修改的操作,Namenode都會使用一種稱為EditLog的事務(wù)日志記錄下來。84.1HDFS(5)通訊協(xié)議所有的HDFS通訊協(xié)議都是建立在TCP/IP協(xié)議之上。(6)健壯性HDFS的主要目標(biāo)就是即使在出錯的情況下也要保證數(shù)據(jù)存儲的可靠性。常見的三種出錯情況是:Namenode出錯,Datanode出錯和網(wǎng)絡(luò)割裂(networkpartitions)。(7)磁盤數(shù)據(jù)錯誤,心跳檢測和重新復(fù)制每個Datanode節(jié)點周期性地向Namenode發(fā)送心跳信號。(8)集群均衡HDFS的架構(gòu)支持?jǐn)?shù)據(jù)均衡策略。(9)數(shù)據(jù)完整性從某個Datanode獲取的數(shù)據(jù)塊有可能是損壞的,損壞可能是由Datanode的存儲設(shè)備錯誤、網(wǎng)絡(luò)錯誤或者軟件bug造成的94.1HDFS(5)通訊協(xié)議所有的HDFS通訊協(xié)議都是建立在TCP/IP協(xié)議之上。(6)健壯性HDFS的主要目標(biāo)就是即使在出錯的情況下也要保證數(shù)據(jù)存儲的可靠性。常見的三種出錯情況是:Namenode出錯,Datanode出錯和網(wǎng)絡(luò)割裂(networkpartitions)。(7)磁盤數(shù)據(jù)錯誤,心跳檢測和重新復(fù)制每個Datanode節(jié)點周期性地向Namenode發(fā)送心跳信號。(8)集群均衡HDFS的架構(gòu)支持?jǐn)?shù)據(jù)均衡策略。(9)數(shù)據(jù)完整性從某個Datanode獲取的數(shù)據(jù)塊有可能是損壞的,損壞可能是由Datanode的存儲設(shè)備錯誤、網(wǎng)絡(luò)錯誤或者軟件bug造成的104.1HDFS元數(shù)據(jù)磁盤錯誤FsImage和Editlog是HDFS的核心數(shù)據(jù)結(jié)構(gòu)。Namenode是HDFS集群中的單點故障(singlepointoffailure)所

在114.1HDFS

4.1.5HDFS讀流程如下圖所示。124.1HDFS塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制HDFS讀流程詳細(xì)流程如下。134.1HDFS塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制(1)首先HDFS的客戶端調(diào)用DistributedFileSystem.open方法打開這個文件(HDFS中API里的一個對象)。(2)通過DistributedFileSystem發(fā)送給NameNode請求,同時將用戶信息及文件名的信息等發(fā)送給NameNode,并返回給DistributedFileSystem,該文件包含的block所在的DataNode位置。(3)HDFS客戶端通過FSDataInputStream按順序去讀取DataNode中的block信息(它會選擇負(fù)載最低的或離客戶端最近的一臺DataNode去讀block)。4.1.6HDFS寫流程如下圖所示。144.1HDFS塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制HDFS寫流程詳細(xì)流程如下。154.1HDFS塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制首先HDFS的客戶端調(diào)用DistributedFileSystem.create方法創(chuàng)建這個文件(HDFS中API里的一個對象)。通過DistributedFileSystem發(fā)送客戶端的請求給NameNode(NameNode主要61是接受客戶端請求)并且會帶著文件要保存的位置、文件名、操作的用戶名等信息一起發(fā)送給NameNode。NameNode會給客戶端返回了一個FSDataOutputStream,同時也會返回文件要寫入哪些DataNode上(負(fù)載較低的)。通過FSDataOutputStream進行寫操作,在寫之前就做文件的拆分,將文件拆分成多個block,第一個寫操作寫在負(fù)載比較低的DataNode上,并將這個block復(fù)制到其他的DataNode上。當(dāng)所有的block副本復(fù)制完成后會反饋給FSDataOutputStream。當(dāng)所有的block副本全都復(fù)制完成,就可以將FSDataOutputStream流關(guān)閉。通過DistributedFileSystem更新NameNode中的源數(shù)據(jù)信息。提綱4.1HDFS4.2HDFS操作實踐習(xí)題小結(jié)164.2.1HDFSShell(1)查看幫助:#hdfsdfs-help(2)創(chuàng)建目錄:#hdfsdfs-mkdirtest(3)列目錄:#hdfsdfs-ls(4)編輯本地文件:#vitesttxt(5)上傳文件:#hdfsdfs-puttesttxttest(6)查看文件:#hdfsdfs-lstest174.2HDFS操作實踐塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制(1)publicbooleanmkdirs(Pathf)throwsIOException:一次性新建所有目錄(包括父目錄),f是完整的目錄路徑。(2)publicFSOutputStreamcreate(Pathf)throwsIOException:創(chuàng)建指定path對象的一個文件,返回一個用于寫入數(shù)據(jù)的輸出流,create()有多個重載版本,允許用戶指定是否強制覆蓋已有的文件、文件備份數(shù)量、寫入文件緩沖區(qū)大小、文件塊大小及文件權(quán)限。(3)publicbooleancopyFromLocal(Pathsrc,Pathdst)throwsIOException:

將本地文件復(fù)制到文件系統(tǒng)。184.2HDFS操作實踐塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制(4)publicbooleanexists(Pathf)throwsIOException:檢查文件或目錄是否存在。(5)publicbooleandelete(Pathf,Booleanrecursive):永久性刪除指定的文件或目錄,如果f是一個空目錄或文件,那么recursive的值就會被忽略。只有recursive=true時,一個非空目錄及其內(nèi)容才會被刪除。(6)FileStatus類封裝了文件系統(tǒng)中文件和目錄的元數(shù)據(jù),包括文件長度、塊大小、備份、修改時間、所有者及權(quán)限信息。194.2HDFS操作實踐塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制提綱4.1HDFS4.2HDFS操作實踐習(xí)題小結(jié)20習(xí)題1.簡述HDFS的體系架構(gòu)。2.簡述HDFS讀數(shù)據(jù)的流程。3.簡述HDFS寫數(shù)據(jù)的流程。4.簡述Block副本的存放策略。5.編寫程序?qū)崿F(xiàn)對HDFS文件讀寫等。注:答案請參見《習(xí)題答案》21提綱5.1MapReduce簡介5.2MapReduce操作實踐習(xí)題小結(jié)22小結(jié)

Hadoop實現(xiàn)了一個高可擴展的分布式文件系統(tǒng)———HDFS,HDFS作

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論