大數(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ù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

(3)啟動(dòng)Namenode,并加上-importCheckpoint。74.1HDFS(1)Block的副本放置策略在大多數(shù)情況下,副本系數(shù)是3,HDFS的存放策略是將一個(gè)副本存放在本地機(jī)架的節(jié)點(diǎn)上,一個(gè)副本放在同一機(jī)架的另一個(gè)節(jié)點(diǎn)上,最后一個(gè)副本放在不同機(jī)架的節(jié)點(diǎn)上。(2)副本選擇為了降低整體的帶寬消耗和讀取延時(shí),HDFS會(huì)盡量讓讀取程序讀取離它最近的副本。(3)安全模式Namenode啟動(dòng)后會(huì)進(jìn)入一個(gè)稱為安全模式的特殊狀態(tài)。處于安全模式的Namenode是不會(huì)進(jìn)行數(shù)據(jù)塊的復(fù)制的。(4)文件系統(tǒng)元數(shù)據(jù)的持久化Namenode上保存著HDFS的名字空間。對(duì)于任何對(duì)文件系統(tǒng)元數(shù)據(jù)產(chǎn)生修改的操作,Namenode都會(huì)使用一種稱為EditLog的事務(wù)日志記錄下來。84.1HDFS(5)通訊協(xié)議所有的HDFS通訊協(xié)議都是建立在TCP/IP協(xié)議之上。(6)健壯性HDFS的主要目標(biāo)就是即使在出錯(cuò)的情況下也要保證數(shù)據(jù)存儲(chǔ)的可靠性。常見的三種出錯(cuò)情況是:Namenode出錯(cuò),Datanode出錯(cuò)和網(wǎng)絡(luò)割裂(networkpartitions)。(7)磁盤數(shù)據(jù)錯(cuò)誤,心跳檢測和重新復(fù)制每個(gè)Datanode節(jié)點(diǎn)周期性地向Namenode發(fā)送心跳信號(hào)。(8)集群均衡HDFS的架構(gòu)支持?jǐn)?shù)據(jù)均衡策略。(9)數(shù)據(jù)完整性從某個(gè)Datanode獲取的數(shù)據(jù)塊有可能是損壞的,損壞可能是由Datanode的存儲(chǔ)設(shè)備錯(cuò)誤、網(wǎng)絡(luò)錯(cuò)誤或者軟件bug造成的94.1HDFS(5)通訊協(xié)議所有的HDFS通訊協(xié)議都是建立在TCP/IP協(xié)議之上。(6)健壯性HDFS的主要目標(biāo)就是即使在出錯(cuò)的情況下也要保證數(shù)據(jù)存儲(chǔ)的可靠性。常見的三種出錯(cuò)情況是:Namenode出錯(cuò),Datanode出錯(cuò)和網(wǎng)絡(luò)割裂(networkpartitions)。(7)磁盤數(shù)據(jù)錯(cuò)誤,心跳檢測和重新復(fù)制每個(gè)Datanode節(jié)點(diǎn)周期性地向Namenode發(fā)送心跳信號(hào)。(8)集群均衡HDFS的架構(gòu)支持?jǐn)?shù)據(jù)均衡策略。(9)數(shù)據(jù)完整性從某個(gè)Datanode獲取的數(shù)據(jù)塊有可能是損壞的,損壞可能是由Datanode的存儲(chǔ)設(shè)備錯(cuò)誤、網(wǎng)絡(luò)錯(cuò)誤或者軟件bug造成的104.1HDFS元數(shù)據(jù)磁盤錯(cuò)誤FsImage和Editlog是HDFS的核心數(shù)據(jù)結(jié)構(gòu)。Namenode是HDFS集群中的單點(diǎn)故障(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方法打開這個(gè)文件(HDFS中API里的一個(gè)對(duì)象)。(2)通過DistributedFileSystem發(fā)送給NameNode請(qǐng)求,同時(shí)將用戶信息及文件名的信息等發(fā)送給NameNode,并返回給DistributedFileSystem,該文件包含的block所在的DataNode位置。(3)HDFS客戶端通過FSDataInputStream按順序去讀取DataNode中的block信息(它會(huì)選擇負(fù)載最低的或離客戶端最近的一臺(tái)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)建這個(gè)文件(HDFS中API里的一個(gè)對(duì)象)。通過DistributedFileSystem發(fā)送客戶端的請(qǐng)求給NameNode(NameNode主要61是接受客戶端請(qǐng)求)并且會(huì)帶著文件要保存的位置、文件名、操作的用戶名等信息一起發(fā)送給NameNode。NameNode會(huì)給客戶端返回了一個(gè)FSDataOutputStream,同時(shí)也會(huì)返回文件要寫入哪些DataNode上(負(fù)載較低的)。通過FSDataOutputStream進(jìn)行寫操作,在寫之前就做文件的拆分,將文件拆分成多個(gè)block,第一個(gè)寫操作寫在負(fù)載比較低的DataNode上,并將這個(gè)block復(fù)制到其他的DataNode上。當(dāng)所有的block副本復(fù)制完成后會(huì)反饋給FSDataOutputStream。當(dāng)所有的block副本全都復(fù)制完成,就可以將FSDataOutputStream流關(guān)閉。通過DistributedFileSystem更新NameNode中的源數(shù)據(jù)信息。提綱4.1HDFS4.2HDFS操作實(shí)踐習(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操作實(shí)踐塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制塊復(fù)制(1)publicbooleanmkdirs(Pathf)throwsIOException:一次性新建所有目錄(包括父目錄),f是完整的目錄路徑。(2)publicFSOutputStreamcreate(Pathf)throwsIOException:創(chuàng)建指定path對(duì)象的一個(gè)文件,返回一個(gè)用于寫入數(shù)據(jù)的輸出流,create()有多個(gè)重載版本,允許用戶指定是否強(qiáng)制覆蓋已有的文件、文件備份數(shù)量、寫入文件緩沖區(qū)大小、文件塊大小及文件權(quán)限。(3)publicbooleancopyFromLocal(Pathsrc,Pathdst)throwsIOException:

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論