第3章Hadoop分布式文件系統(tǒng)_第1頁
第3章Hadoop分布式文件系統(tǒng)_第2頁
第3章Hadoop分布式文件系統(tǒng)_第3頁
第3章Hadoop分布式文件系統(tǒng)_第4頁
第3章Hadoop分布式文件系統(tǒng)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第3章Hadoop分布式文件系統(tǒng)目

錄1認識HDFSHDFS相關概念HDFS體系結構HDFS運行原理及保障2343.1.1認識HDFS1、分布式文件系統(tǒng)相對于傳統(tǒng)的本地文件系統(tǒng)而言,分布式文件系統(tǒng)(DistributedFileSystem)是一種通過網(wǎng)絡實現(xiàn)文件在多臺主機上進行分布式存儲的文件系統(tǒng)。分布式文件系統(tǒng)允許將一個文件通過網(wǎng)絡在多臺主機上以多副本的方式進行存儲,實際上就是通過網(wǎng)絡來訪問文件,但用戶和程序看起來跟訪問本地的磁盤一樣。目前,應用廣泛的分布式文件系統(tǒng)主要包括GFS和HDFS,HDFS是GFS的開源實現(xiàn)。3.1.1認識HDFS2、HDFS簡介HDFS是Hadoop分布式文件系統(tǒng)(HadoopDistributedFileSystem)的縮寫,是ApacheHadoop的核心子項目。HDFS支持海量數(shù)據(jù)的存儲,是分布式計算中數(shù)據(jù)存儲和管理的基礎,是基于流數(shù)據(jù)模式訪問和處理超大文件的需求而開發(fā)的,可以運行于廉價的商用服務器上。它所具有的高容錯、高可靠性、高可擴展性、高吞吐率等特征為海量數(shù)據(jù)提供了不怕故障的存儲,為超大數(shù)據(jù)集的應用處理帶來了很多便利。3.1.1認識HDFS3、HDFS的優(yōu)缺點優(yōu)點:(1)支持超大文件的處理(2)支持流式的訪問數(shù)據(jù)(3)可構建在廉價機器上3.1.1認識HDFS3、HDFS的優(yōu)缺點缺點:(1)不適合低延時數(shù)據(jù)訪問(2)無法高效存儲大量小文件(3)不支持多用戶并發(fā)寫入和任意修改文件3.1.2HDFS相關概念1、數(shù)據(jù)塊(Block)傳統(tǒng)的文件系統(tǒng)中,為提高磁盤讀寫效率,通常不是以字節(jié)為單位,而是以數(shù)據(jù)塊為單位。HDFS同樣采用了數(shù)據(jù)塊的概念,最基本的存儲單位即是數(shù)據(jù)塊,Hadoop3.0版本默認數(shù)據(jù)塊的大小是128M(有些舊版本為64M)。3.1.2HDFS相關概念2、名稱節(jié)點(Namenode)在HDFS中,名稱節(jié)點主要負責管理分布式文件系統(tǒng)的命名空間,它將所有的文件和文件夾的元數(shù)據(jù)保存在一個文件系統(tǒng)樹中。Namenode是整個文件系統(tǒng)的管理節(jié)點,維護著整個文件系統(tǒng)的文件目錄樹,元數(shù)據(jù)信息和每個文件對應的數(shù)據(jù)塊列表,并接收用戶的操作請求。3.1.2HDFS相關概念3、數(shù)據(jù)節(jié)點(Datanode)在HDFS中,數(shù)據(jù)節(jié)點是工作節(jié)點,負責數(shù)據(jù)的真正存儲和讀取,會根據(jù)Namenode的調度來進行數(shù)據(jù)的存儲和檢索,并且定期向Namenode發(fā)送自己所存儲的塊的列表。所有數(shù)據(jù)節(jié)點的數(shù)據(jù)保存在各自節(jié)點的本地Linux文件系統(tǒng)中。3.1.2HDFS相關概念4、第二名稱節(jié)點(SecondaryNamenode)SecondaryNamenode并不是Namenode節(jié)點出現(xiàn)問題時的備用節(jié)點,HDFS也并不支持把系統(tǒng)直接切換到SecondaryNamenode。NameNode元數(shù)據(jù)信息存儲在FsImage中,NameNode每次重啟后會把FsImage讀取到內存中,在運行過程中為了防止數(shù)據(jù)丟失,NameNode的操作會被不斷的寫入本地EditLog文件中。3.1.3HDFS體系結構HDFS采用了主從(Master/Slave)結構,如圖3-1所示。一個HDFS集群是由一個名稱節(jié)點(NameNode)和多個數(shù)據(jù)節(jié)點(DataNode)組成,通常配置在不同的機器上。名稱節(jié)點作為中心服務器,負責管理文件系統(tǒng)的命名空間及客戶端對文件的訪問。而數(shù)據(jù)節(jié)點,通常是一個節(jié)點一臺機器,是分布式文件系統(tǒng)HDFS的工作節(jié)點,負責對應節(jié)點數(shù)據(jù)的存儲和讀取,會根據(jù)客戶端或者是名字節(jié)點的調度來進行數(shù)據(jù)的存儲和檢索。3.1.3HDFS體系結構3.1.4HDFS運行原理及保障一、HDFS讀寫流程1、HDFS讀數(shù)據(jù)流程客戶端通過連續(xù)調用open()、read()、close()讀取數(shù)據(jù),具體執(zhí)行過程如下圖3-2所示:3.1.4HDFS運行原理及保障3.1.4HDFS運行原理及保障一、HDFS讀寫流程(1)客戶端發(fā)送請求,調用DistributedFileSystem的create方法創(chuàng)建文件。調用create方法后,DistributedFileSystem會創(chuàng)建FSDataOutputStream輸出流。(2)DistributedFileSystem通過RPC遠程調用Namenode,在文件系統(tǒng)的命名空間中創(chuàng)建一個新文件。此時,Namenode會做一系列的檢查,比如文件是否已經(jīng)存在、客戶端是否擁有創(chuàng)建文件權限等。若通過檢查,Namenode會構造一個新文件,并添加相關文件信息。3.1.4HDFS運行原理及保障一、HDFS讀寫流程(3)客戶端調用FSDataOutputStream的write方法將數(shù)據(jù)寫到一個內部隊列中。如果數(shù)據(jù)副本數(shù)量是3,則將隊列中的數(shù)據(jù)寫入3個副本對應的Datanode上。但并不是由客戶端分別往3個Datanode上寫3份,而是由已經(jīng)收到數(shù)據(jù)包的第一個Datanode,將數(shù)據(jù)包發(fā)送給第二個Datanode,第二個datanode再將數(shù)據(jù)包發(fā)送給第三個Datanode。3.1.4HDFS運行原理及保障一、HDFS讀寫流程(4)每個DataNode寫完一個塊后,會返回確認信息。FSDataOutputStream內部維護著一個確認隊列。當接收到所有DataNode確認寫完的信息后,數(shù)據(jù)才會從確認隊列中進行刪除。(5)當客戶端寫完所有數(shù)據(jù),調用close方法關閉輸出流。3.1.4HDFS運行原理及保障二、HDFS副本機制與機架感知策略HDFS作為一個分布式文件系統(tǒng),為了保證其系統(tǒng)的可靠性和容錯性,采用了多副本的方式存儲數(shù)據(jù)。副本的數(shù)量可以在hdfs-site.xml配置文件中通過參數(shù)設定,如下所示。通常每個數(shù)據(jù)塊默認三個副本,每個副本會分配到不同的數(shù)據(jù)節(jié)點上。<property><name>dfs.replication</name><value>3</value>--此處的3代表三個副本</property>3.1.4HDFS運行原理及保障二、HDFS副本機制與機架感知策略HDFS數(shù)據(jù)塊默認副本為三,通常每個數(shù)據(jù)塊都會被保存在不同的三個地方。其中,有兩個副本存儲在同一個機架的不同機器上面,第三個副本存儲在不同機架的機器上面.3.1.4HDFS運行原理及保障二、HDFS副本機制與機架感知策略HDFS的副本放置策略如下:(1)若是在集群內部發(fā)起的寫操作請求,則把第一個副本放置在發(fā)起寫操作請求的數(shù)據(jù)節(jié)點上,實現(xiàn)就近寫入數(shù)據(jù)。若是來自集群外部的寫操作請求,則隨機挑選一個磁盤不太滿、CPU不太忙的數(shù)據(jù)節(jié)點進行第一個副本的存儲。(2)第二個副本會被放置在和第一個副本不同機架數(shù)據(jù)節(jié)點上。(3)第三個副本則會被放置在和第二個副本相同機架不同數(shù)據(jù)節(jié)點上。(4)如果還有更多的副本,則會隨機從集群中選擇數(shù)據(jù)節(jié)點進行存放。3.1.4HDFS運行原理及保障三、數(shù)據(jù)復制和心跳機制HDFS采用主從模式,主節(jié)點Namenode,從節(jié)點Datanode,Namenode和Datanode主要通過心跳的方式進行通信。Datanode向Namenode定期發(fā)送心跳報告,報告自己的存活狀態(tài)和自己存儲的塊信息。3.1.4HDFS運行原理及保障四、HDFS負載均衡HDFS上的數(shù)據(jù)也許并不能非常均勻地分布在各個DataNode中。HDFS集群也非常容易出現(xiàn)機器與機器之間磁盤利用率不平衡的情況,其中一個常見的原因是在現(xiàn)有的集群上經(jīng)常會增添新的DataNode。當新增一個數(shù)據(jù)塊(一個文件的數(shù)據(jù)被保存在一系列的塊中)時,NameNode在選擇DataNode接收這個數(shù)據(jù)塊之前,要考慮到很多因素。3.1.4HDFS運行原理及保障其中某些因素如下:(1)將數(shù)據(jù)塊的一個副本放在正在寫這個數(shù)據(jù)塊的節(jié)點上。(2)盡量將數(shù)據(jù)塊的不同副本分布在不同的機架上,這樣集群可在完全失去某一機架的情況下還能存活。(3)一個副本通常被放置在和寫文件的節(jié)點同一機架的某個節(jié)點上,這樣可以減少跨越機架的網(wǎng)絡I/O。(4)盡量均勻地將HDFS數(shù)據(jù)分布在集群的DataNode中。3.2.1使用HDFSshell訪問Hadoop支持很多Shell命令,可以查看HDFS文件系統(tǒng)的目錄結構、上傳和下載數(shù)據(jù)、創(chuàng)建文件等。Hadoop可以使用的三種shell命令方式:(1)hadoopfs,可以適用于任何不同的文件系統(tǒng)。(2)hadoopdfs,只能適用于HDFS文件系統(tǒng),舊版本曾使用過,已過時。(3)hdfsdfs,只能適用于HDFS文件系統(tǒng),目前較常用。3.2.1使用HDFSshell訪問1、常用Shell命令解析(1)hdfsdfs-appendToFile<localsrc>...<dst>可同時上傳多個文件到HDFS里面。(2)hdfsdfs-catURI[URI...]查看文件內容。(3)hdfsdfs-chgrp[-R]GROUPURI[URI...]修改文件所屬組。(4)hdfsdfs-chmod[-R]<MODE[,MODE]...|OCTALMODE>URI[URI...]修改文件權限。3.2.1使用HDFSshell訪問1、常用Shell命令解析(5)hdfsdfs-chown[-R][OWNER][:[GROUP]]URI[URI]修改文件所有者,文件所屬組,其他用戶的讀、寫、執(zhí)行權限。(6)hdfsdfs-copyFromLocal<localsrc>URI復制文件到hdfs。(7)hdfsdfs-copyToLocal[-ignorecrc][-crc]URI<localdst>復制文件到本地。(8)hdfsdfs-count[-q]<paths>統(tǒng)計文件及文件夾數(shù)目。3.2.1使用HDFSshell訪問1、常用Shell命令解析(9)hdfsdfs-cp[-f]URI[URI...]<dest>HadoopHDFS文件系統(tǒng)間的文件復制。(10)hdfsdfs-du[-s][-h]URI[URI...]統(tǒng)計目錄下的文件及大小。(11)hdfsdfs-dus<args>匯總目錄下的文件總大小。(12)hdfsdfs-get[-ignorecrc][-crc]<src><localdst>下載文件到本地。3.2.1使用HDFSshell訪問1、常用Shell命令解析(13)hdfsdfs-getmerge<src><localdst>[addnl]合并下載文件到本地。(14)hdfsdfs-ls<args>查看目錄。(15)hdfsdfs-ls-R<args>循環(huán)列出目錄、子目錄及文件信息。(16)hdfsdfs-mkdir[-p]<paths>創(chuàng)建空白文件夾。3.2.1使用HDFSshell訪問1、常用Shell命令解析(17)dfs-moveFromLocal<localsrc><dst>剪切文件到hdfs。(18)hdfsdfs-moveToLocal[-crc]<src><dst>剪切文件到本地。(19)hdfsdfs-mvURI[URI...]<dest>剪切hdfs文件。(20)hdfsdfs-put<localsrc>...<dst>上傳文件。3.2.1使用HDFSshell訪問1、常用Shell命令解析(21)hdfsdfs-rm[-skipTrash]URI[URI...]刪除文件/空白文件夾。(22)hdfsdfs-rm-r[-skipTrash]URI[URI...]遞歸刪除刪除文件及文件夾下的所有文件。(23)hdfsdfs-setrep[-R][-w]<numReplicas><path>修改副本數(shù)。(24)hdfsdfs-statURI[URI...]顯示文件統(tǒng)計信息。3.2.1使用HDFSshell訪問1、常用S

溫馨提示

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

評論

0/150

提交評論