hdfs

Hadoop分布式文件系統(tǒng)(HDFS)被設計成適合運行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點。但同時,它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個高度容錯性的系統(tǒng),適合部署在廉價的機器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應用。HDFS放寬了一部分POSIX約束,來實現(xiàn)流式讀取文件系統(tǒng)數(shù)據(jù)的目的。HDFS在最開始是作為Apache Nutch搜索引擎項目的基礎架構(gòu)而開發(fā)的。HDFS是Apache Hadoop Core項目的一部分。

HDFS有著高容錯性(fault-tolerant)的特點,并且設計用來部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)來訪問應用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以實現(xiàn)流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。

hdfs基本信息

全稱 Hadoop Distributed File System 簡稱 hdfs
實質(zhì) 分布式文件系統(tǒng) 作用 作為Apache Nutch的基礎架構(gòu)
特點 高容錯性 適用 大規(guī)模數(shù)據(jù)集

hdfs造價信息

市場價 信息價 詢價
材料名稱 規(guī)格/型號 市場價
(除稅)
工程建議價
(除稅)
行情 品牌 單位 稅率 供應商 報價日期
暫無數(shù)據(jù)
材料名稱 規(guī)格/型號 除稅
信息價
含稅
信息價
行情 品牌 單位 稅率 地區(qū)/時間
暫無數(shù)據(jù)
材料名稱 規(guī)格/需求量 報價數(shù) 最新報價
(元)
供應商 報價地區(qū) 最新報價時間
服務器與存儲-分布式NAS存儲 分布式軟件統(tǒng)一品牌)7、部署方式:Scale-out橫向擴展的分布式架構(gòu),節(jié)點間完全對稱,無獨立的元數(shù)據(jù)物理服務器或索引服務器;8、數(shù)據(jù)服務:在一個集群內(nèi)同時提供塊存儲、文件存儲、對象以及HDFS存儲服務,9、IPv6支持:同時支持IPv4和IPv6協(xié)議,在同時部署IPv4和IPv6組網(wǎng)的情況|1套 3 查看價格 北京神州新橋科技有限公司 全國   2022-04-29
分布式存儲 策略,可根據(jù)數(shù)據(jù)不同的保護級別在同一系統(tǒng)內(nèi)同時設置數(shù)據(jù)副本模式副本支持2-8副本;同一存儲系統(tǒng)同時支持Swift、S3、iSCSI、CIFS、NFS、FTP等協(xié)議,支持HDFS API;每個存儲節(jié)點配置|1臺 1 查看價格 廣州尚漢信息科技有限公司 全國   2022-01-07
云存儲 /iSCSI/FC接口的存儲設備、支持各種分布式文件系統(tǒng)(如Glusterfs、TFS、HDFS、DDN等)、存儲容量和性能可橫向擴展,支持通用磁帶和磁帶庫驅(qū)動管理,不限制存儲系統(tǒng)品牌;存儲系統(tǒng)支持數(shù)據(jù)冗|5套 1 查看價格 深圳市連用科技公司 廣東  深圳市 2018-09-11

hdfs常見問題

HDFS是什么?

HDFS 全稱 Hadoop Distributed File System ,簡稱HDFS,是一個分布式文件系統(tǒng)。它是谷歌的GFS提出之后出現(xiàn)的另外一種文件系統(tǒng)。它有一定高度的容錯性,而且提供了高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應用。HDFS 提供了一個高度容錯性和高吞吐量的海量數(shù)據(jù)存儲解決方案。

優(yōu)點

1、存儲超大文件

2、標準流式訪問:“一次寫入,多次讀取”

3、運行在廉價的商用機器集群上

不足

1、不能滿足低延遲的數(shù)據(jù)訪問

2、無法高效存儲大量小文件

3、暫時不支持多用戶寫入及隨意修改文件

HDFS概念理解

hdfs架構(gòu)圖如下:

1、文件塊(圖中1、2、3、4帶顏色的小正方形)

文件分成塊存儲(默認64M,如今版本是128是M),多臺計算機存儲。DateNode中存儲以數(shù)字編號的方塊(見上圖)用于備份,每個塊都會復制到幾臺機器上(默認3臺),如果一個塊不可用,可從其它地方讀取副本。副本是3,表示一共3處有該塊。如果配置文件中副本設置為 4 ,但是結(jié)果只有2臺datanode,最后副本還是2

1000個1M的小文件會占用1024個塊和1024個 inode,但是他只是占用1個塊中的1M,不會占用整個空間,不過由于inode存儲在NameNode的內(nèi)存里,如果NameNode內(nèi)存不足以存儲inode,那么就不能再存儲文件了、所以說HDFS并不適合存儲小文件,有時候還要將小文件合并為大文件。

顯示塊信息命令:

hdfs fsck / -files –blocks //列出根目錄下各個文件由哪些塊存儲。

//它只是從NameNode獲取信息,不與DateNode交互。

2、 NameNode和DataNode

NameNode(名字節(jié)點): 管理文件系統(tǒng)命名空間;維護文件系統(tǒng)樹內(nèi)所有文件和目錄,記錄每個文件在哪個DateNode的位置和副本信息,協(xié)調(diào)客戶端對文件的訪問。 以兩種文件格式存在:

fsimage_*:元數(shù)據(jù)鏡像文件,即系統(tǒng)的目錄樹,包括文件目錄和inodes元信息(文件名,文件大小,創(chuàng)建時間,備份級別,訪問權(quán)限,block的size,所有block的構(gòu)成),每個inode是hdfs的一個代表文件或者目錄的元數(shù)據(jù)。這個鏡像文件相當于hdfs的元數(shù)據(jù)額數(shù)據(jù)庫文件。

edits_*:編輯日志文件,也就是事務日志文件,也就是針對文件系統(tǒng)做的修改操作記錄,記錄元數(shù)據(jù)的變化,相當于操作日志文件。一個文件的創(chuàng)建,追加,移動等。 NameNode內(nèi)存中存儲的是=fsimage+edits 檢查點:NameNode啟動時,從磁盤中讀取上面兩種文件,然后把edits_*里面記錄的事務全部刷新到 fsimage_*中,這樣就截去了舊的edits_*事務日志,這個過程叫checkpoint。

上面文件在~/hadoop-2.6/dfs/name/current目錄下(在hdfs-site.xml) ,除此之外,還有VERSION(版本信息,包含文件系統(tǒng)唯一標識符)和seen_txid(事務管理,里面保存一個整數(shù),表示edits_*的尾數(shù))兩個文件。

DataNode(數(shù)據(jù)節(jié)點):存儲,檢索數(shù)據(jù)塊。定期向NameNode發(fā)送所存儲的塊的列表。存儲的塊大小是64M,并且盡量把數(shù)據(jù)塊分布不同的DateNode節(jié)點上。

上圖某文件被分成4塊,在多個DataNode中存儲,而且每塊都復制兩個備份,存儲在其它DataNode中。這些數(shù)據(jù)的存儲目錄/home/hduser/hadoop-2.6/dfs/data(dfs-site.xml中指定)。例如下面文件:/home/hduser/hadoop-2.6/dfs/data/current/BP-1111-ip-2222/current/finalized/subbdir0/sudir0,該目錄下的文件包括blk_{id}和blk_{id}.meta,前者是二進制格式的數(shù)據(jù)塊,后者是數(shù)據(jù)塊的元信息(版本信息,類型信息 )

DataNode負責處理文件系統(tǒng)客戶端的文件讀寫請求,并在NameNode的統(tǒng)一調(diào)度下進行數(shù)據(jù)的創(chuàng)建,刪除和復制工作。如果NameNode數(shù)據(jù)損壞,HDFS所有文件都不能訪問,為了保證高可用性,Hadoop對NameNode進行了補充,即Sencondary NameNode。

3、 Secondary NameNode結(jié)點

系統(tǒng)同步運行一個Secondary NameNode,也稱二級NameNode,周期的備份NameNode,它可以用來恢復NameNode。由于有一定的滯后,所以會帶來數(shù)據(jù)的損失。為了防止宕機,一般我們會把它放在另外一臺計算機。使用hdfs-site.xml中dfs.namenode.secondary.http-address屬性可以通過瀏覽器查看Secondary NameNode的運行狀態(tài)。 默認是1小時,從NameNode獲取fsimage和edits進行合并,然后再發(fā)送給namenode,減少namenode的工作量。

HDFS體系架構(gòu)

HDFS采用master/slave架構(gòu)。一個HDFS集群是由一個Namenode和一定數(shù)目的Datanodes組成。Namenode是一個中心服務器,負責管理文件系統(tǒng)的名字空間(namespace)以及客戶端對文件的訪問。集群中的Datanode一般是一個節(jié)點一個,負責管理它所在節(jié)點上的存儲。HDFS暴露了文件系統(tǒng)的名字空間,用戶能夠以文件的形式在上面存儲數(shù)據(jù)。從內(nèi)部看,一個文件其實被分成一個或多個數(shù)據(jù)塊,這些塊存儲在一組Datanode上。Namenode執(zhí)行文件系統(tǒng)的名字空間操作,比如打開、關閉、重命名文件或目錄。它也負責確定數(shù)據(jù)塊到具體Datanode節(jié)點的映射。Datanode負責處理文件系統(tǒng)客戶端的讀寫請求。在Namenode的統(tǒng)一調(diào)度下進行數(shù)據(jù)塊的創(chuàng)建、刪除和復制。 一次寫,多次讀取:一個文件一旦創(chuàng)建,寫入,關閉之后就不需要修改了。

讀寫流程如下: 讀流程:客戶端向NameNode請求訪問某個文件,NameNode返回該文件位置在哪個DataNode上,然后客戶端從DataNode上讀取數(shù)據(jù)。 寫流程:客戶端向NameNode發(fā)出寫文件寫請求,NameNode告訴客戶端向哪個DataNode寫文件,然后客戶端將文件寫入該DataNode節(jié)點,隨后該 DataNode將該文件自動復制到其它DataNode節(jié)點上,默認三份備份。

HDFS常見節(jié)點管理:1 節(jié)點添加 可擴展性是一個重要特征,往HDFS集群中添加一個節(jié)點步驟如下:

1) 對新節(jié)點進行系統(tǒng)配置(hostname,hosts,jdk,防火墻等)

2) 對新節(jié)點進行hadoop的安裝和配置,和其它DataNode一樣。

3) 在NameNode中修改~/hadoop-2.6/etc/hadoop/Slaves文件,加入新節(jié)點名稱。

4) 啟動(start-all.sh,或者start-dfs.sh,start-yarn.sh)

2 負載均衡 HDFS的數(shù)據(jù)在各個DataNode中的分布可能不均勻,尤其是DataNode出現(xiàn)故障或者新增節(jié)點時,采用下面命令可以重新平衡DataNode的數(shù)據(jù)塊分布: $start-balancer.sh

3 安全機制 由于NameNode統(tǒng)一調(diào)度,沒有它文件系統(tǒng)無法使用,采用下面兩種機制確保其安全:

1) 把NameNode存儲的元數(shù)據(jù)轉(zhuǎn)移到其它文件系統(tǒng)上。

2) 使用Secondary NameNode同步備份。

加米谷大數(shù)據(jù)是一家專注于大數(shù)據(jù)培訓的機構(gòu),提供個人培訓和企業(yè)內(nèi)訓;如果您是0基礎學習大數(shù)據(jù)或者轉(zhuǎn)行大數(shù)據(jù)行業(yè),歡迎實地了解考察!

本書以云計算與大數(shù)據(jù)基礎開篇,簡單介紹了分布式文件系統(tǒng)HDFS與NoSQL數(shù)據(jù)庫技術,重點對分布式計算框架MapReduce、Hadoop技術、云數(shù)據(jù)中心、大數(shù)據(jù)與數(shù)據(jù)挖掘技術進行了闡述。 2100433B

hdfs相關推薦
  • 相關百科
  • 相關知識
  • 相關專欄