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提交資訊。