首先,它是乙個檔案系統,用於儲存檔案,通過統一的命名空間——目錄樹來定位檔案
其次,它是分布式的,由很多伺服器聯合起來實現其功能,集群中的伺服器有各自的角色;
hdfs是分布式檔案系統(多個datanode更親切點吧)
設計思想:分而治之:將大檔案、大批量檔案,分布式存放在大量伺服器上,以便於採取分而治之的方式對海量資料進行運算分析。
重要特性如下:
(1)hdfs中的檔案在物理上是
分塊儲存(block)
,塊的大小可以通過配置引數( dfs.blocksize)來規定,預設大小在
hadoop2.x
版本中是
128m
,老版本中是
64m(2)hdfs檔案系統會給客戶端提供乙個
統一的抽象目錄樹,客戶端通過路徑來訪問檔案,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data
(3)目錄結構及檔案分塊資訊(元資料
)
的管理由
namenode節點承擔
——namenode
是hdfs
集群主節點,負責維護整個
hdfs
檔案系統的目錄樹,以及每乙個路徑(檔案)所對應的
block
塊資訊(
block的id
,及所在的
datanode
伺服器(4)檔案的各個block的儲存管理由datanode節點承擔
---- datanode是
hdfs
集群從節點,每乙個
block
都可以在多個
datanode
上儲存多個副本(副本數量也可以通過引數設定
dfs.replication
)(5)hdfs是設計成適應一次寫入,多次讀出的場景,且不支援檔案的修改。讀的速度快。
為各類分布式運算框架(如:mapreduce,
spark
,tez
,……)提供資料儲存服務
hdfs集群分為兩大角色:
namenode
、datanode
namenode負責管理整個檔案系統的元資料
datanode 負責管理使用者的檔案資料塊
檔案會按照固定的大小(blocksize)切成若干塊後分布式儲存在若干臺
datanode
上每乙個檔案塊可以有多個副本,並存放在不同的datanode上
datanode會定期向namenode匯報自身所儲存的檔案
block
資訊,而
namenode
則會負責保持檔案的副本數量
hdfs的內部工作機制對客戶端保持透明,客戶端請求訪問
hdfs
都是通過向
namenode
申請來進行
客戶端將要讀取的檔案路徑傳送給namenode,
namenode
獲取檔案的元資訊(主要是
block
的存放位置資訊)返回給客戶端,客戶端根據返回的資訊找到相應
datanode
逐個獲取檔案的
block
並在客戶端本地進行資料追加合併從而獲得整個檔案
客戶端要向hdfs寫資料,首先要跟
namenode
通訊以確認可以寫檔案並獲得接收檔案
block
的datanode
,然後,客戶端按順序將檔案逐個
block
傳遞給相應
datanode
,並由接收到
block
的datanode
負責向其他
datanode
複製block
的副本
分布式檔案系統 HDFS
hdfs源於google發表的乙份gfs hdfs是hadoop專案的核心子專案,是分布式計算中資料儲存管理的基礎,可以執行在廉價機器上,具有高容錯 高可靠性 高可擴充套件性 高獲得性 高吞吐率等特性,為超大資料集的應用處理帶來極大便利。1 hdfs的優點 1 高容錯性 資料自動儲存多個版本,通過增...
分布式檔案系統HDFS
以 bin dfs dfs 開頭的shell命令方式 1 在hdfs中為hadoop使用者建立乙個使用者目錄 hadoop使用者 2 在使用者目錄下建立乙個input目錄 3 在hdfs的根目錄下建立乙個名稱為input的目錄 4 刪除hdfs根目錄中的 input 目錄 在該檔案裡面可以隨意輸入一...
分布式檔案系統HDFS
以 bin dfs dfs 開頭的shell命令方式 1 在hdfs中為hadoop使用者建立乙個使用者目錄 hadoop使用者 2 在使用者目錄下建立乙個input目錄 3 在hdfs的根目錄下建立乙個名稱為input的目錄 4 刪除hdfs根目錄中的 input 目錄 在該檔案裡面可以隨意輸入一...