目錄
- 1.5 HDFS分布式檔案系統
- 1.5.1 HDFS 簡介
- 1.5.2 HDFS的重要概念
- 1.5.3 HDFS架構
1.5 HDFS分布式檔案系統
1.5.1 HDFS 簡介
HDFS(全稱:Hadoop Distribute File System,Hadoop 分布式檔案系統)是 Hadoop 核心組成,是分布式存盤服務,
分布式檔案系統橫跨多臺計算機,在大資料時代有著廣泛的應用前景,它們為存盤和處理超大規模資料提供所需的擴展能力,
HDFS是分布式檔案系統中的一種,
1.5.2 HDFS的重要概念
HDFS 通過統一的命名空間目錄樹來定位檔案;另外,它是分布式的,由很多服務器聯合起來實作其功能,集群中的服務器有各自的角色(分布式本質是拆分,各司其職)
-
典型的 Master/Slave 架構
HDFS 的架構是典型的 Master/Slave 結構,
HDFS集群往往是一個NameNode(HA架構會有兩個NameNode,聯邦機制)+ 多個DataNode組成,
NameNode是集群的主節點,DataNode是集群的從節點,
-
分塊存盤(block機制)
HDFS中的檔案在物理上是分塊存盤(block)的,塊的大小可以通過配置引數來規定,
Hadoop2.x版本中默認的block大小是128M,
-
命名空間(NameSpace)
HDFS支持傳統的層次型檔案組織結構,用戶或者應用程式可以創建目錄,然后將檔案保存在這些目錄里,檔案系統名字空間的層次結構和大多數現有的檔案系統類似:用戶可以創建、洗掉、移動 或重命名檔案,
Namenode 負責維護檔案系統的名字空間,任何對檔案系統名字空間或屬性的修改都將被 Namenode 記錄下來,
HDFS提供給客戶單一個抽象目錄樹,訪問形式:hdfs://namenode的hostname:port/test/input
hdfs://linux121:9000/test/input
-
NameNode元資料管理
我們把目錄結構及檔案分塊位置資訊叫做元資料,
NameNode的元資料記錄每一個檔案所對應的block資訊(block的id,以及所在的DataNode節點的資訊)
-
DataNode資料存盤
檔案的各個 block 的具體存盤管理由 DataNode 節點承擔,一個block會有多個DataNode來存盤,DataNode會定時向NameNode來匯報自己持有的block資訊,
-
副本機制
為了容錯,檔案的所有 block 都會有副本,每個檔案的 block 大小和副本系數都是可配置的,應用程式可以指定某個檔案的副本數目,副本系數可以在檔案創建的時候指定,也可以在之后改變, 副本數量默認是3個, -
一次寫入,多次讀出
HDFS是設計成適應一次寫入,多次讀出的場景,且不支持檔案的隨機修改,(支持追加寫入, 不只支持隨機更新)
正因為如此,HDFS適合用來做大資料分析的底層存盤服務,并不適合用來做網盤等應用(修改不方便,延遲大,網路開銷大,成本太高)
1.5.3 HDFS架構

-
NameNode(nn):hdfs集群的管理者,Master
-
維護管理hdfs的名稱空間(NameSpace)
-
維護副本策略
-
記錄檔案塊(Block)的映射資訊
-
負責處理客戶端讀寫請求
-
-
DataNode:NameNode下達命令,DataNode執行實際操作,Slave節點,
- 保存實際的資料塊
- 負責資料塊的讀寫
-
Client:客戶端
- 上傳檔案到HDFS的時候,Client負責將檔案切分成Block,然后進行上傳
- 請求NameNode互動,獲取檔案的位置資訊
- 讀取或寫入檔案,與DataNode互動
- Client可以使用一些命令來管理HDFS或者訪問HDFS

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/539385.html
標籤:大數據
上一篇:第十一章-并發控制
