1. 程式人生 > >Hadoop之HDFS架構功能剖析說明

Hadoop之HDFS架構功能剖析說明

HDFS系統架構圖層面解析

Hadoop Distributed File System (HDFS):分散式檔案系統

*分散式應用分為主從架構:主節點NameNode(一個)從節點:DateNode(多個)

*HDFS服務元件:namenode,datanode,SecondaryNamenode

*Hdfs儲存形式:儲存在HDFS上的檔案是以塊(block)的形式儲存的,Hadoop2.x的版本中預設塊的大小是128M。

HDFS服務功能

*Namenode:主節點,儲存檔案的元資料(檔名,檔案目錄結構,檔案屬性(生成時間,副本數,檔案許可權等))

,以及每個檔案的塊列表和塊所在的DataNode等。

*DataNode:在本地檔案系統儲存檔案資料,以及塊資料的校驗和(長度、建立時間、CRC32校驗和)。

*Secondary NameNode:用來監控HDFS狀態的輔助後臺程式,每隔一段時間獲取HDFS元資料的快照。定時的將NameNode的映象檔案和編輯日誌檔案合併為一個檔案,叫做新映象檔案。

*************************************************************

HDFS中有兩個基本組成

是由‘一臺Namenode伺服器和多臺DataNode伺服器組成’

A) NameNode:名稱節點,用來儲存元資料(幫助你快速找到資料塊,就是資料塊的對映)

HDFS儲存:(塊操作)是把一個檔案從邏輯上分為塊,麼一個塊預設的儲存是128M,把這些塊依次的存到不同的DataNode伺服器上,每個DataNode上存了哪些塊是記錄在NameNode上的,讀取的時候也是首先要去訪問NameNode,(NameNode代表每一個幾群的訪問入口)通過NameNode去找到對應的塊檔案,NameNode其實就是儲存的對應關係元資料。

B)  Datanode:資料節點,用來儲存真實的資料。

DataNode其實是用來儲存資料塊的

***注意:當我們吧很多臺伺服器組成一個HDFS叢集以後,我們會去啟動一個角色是NameNode和DataNode程序,作為NameNode伺服器要去啟動對應的的角色

           當某個DataNode伺服器啟動失敗了,他不影響裡面的資料訪問,比如所有的DataNode伺服器記憶體全部滿了,我們可以直接加伺服器進去,可以隨意新增,互不影響,這就是分散式檔案儲存系統

在叢集中我們有很多臺伺服器,

           有一臺伺服器啟動的是namenode

           其他伺服器啟動的是DataNode


yarn服務的功能

ResourceManager:處理客戶端請求

                      啟動/監控ApplicationMaster

                      監控NodeManager

                      資源分配與排程

 ApplicationMaster:資料切分

                      為應用程式申請資源,並分配給內部任務

                      任務監控與容錯

NodeManager:單個節點上的資源管理

                      處理來自ResourceManager的命令

                      處理來自ApplicationMaster的命令

 Container:對多工執行環境的抽象,封裝了CPU、記憶體等多維資源以及環境變數、啟動命 令等任務執行相關資訊


MapReduce 如何執行在YARN上

1. 客戶端向ResourceManager提交任務。

2.ResourceManager向NodeManager分配一個ApplicationsManager,並找到一個容器生 成一個MR App Mstr。

3.該應用的管理者向ResourceManager申請資源。

4. 資源申請完畢後,找到NodeManager將容器中的MR App Mstr啟動起來。

5. Map任務和Reduce任務啟動。

6. Map與Reduce程式執行過程中都要向MR App Mstr提交資訊。

7. 當程式執行結束時,應用管理者向ResourceManager提交資訊。