Hadoop是一個分布式系統基礎架構,主要解決海量資料的存盤和海量資料的分析計算問題,
Hadoop1.x和Hadoop2.x區別:

在Hadoop1.x時代,Hadoop中的MapReduce同時處理計算和資源調度,耦合性較大,
在Hadoop2.x時代,增加了Yarn,Yarn只負責資源的調度,MapReduce只負責運算,
Hadoop組成:
HDFS架構概述
HDFS是一個檔案系統,用于存盤檔案,其次,它是分布式的,由很多服務器聯合起來實作其功能,
優點
1)高容錯,資料自動保存多個副本,它通過增加副本的形式,提高容錯性,一個副本丟失之后,它自動恢復,
2)適合處理大資料,
3)可構建在廉價的機器上,通過多副本機制,提高可靠性,
缺點
1)不適合低延時資料訪問,比如毫秒級的存盤資料,是做不到的,
2)無法高效的對大量小檔案進行存盤,存盤大量的小檔案,會占用NameNode大量的記憶體來存盤檔案目錄和塊資訊,
而且小檔案存盤的尋址時間會超過讀取時間,它違反了HDFS的設計目標,
3)不支持并發寫入、檔案隨機修改,一個檔案只能有一個寫,不允許多個執行緒同時寫,僅支持資料追加,不支持檔案
的隨機修改,

HDFS由四部分組成,HDFS Client、NameNode、DataNode和Secondary NameNode,HDFS是一個主/從體系結構,HDFS集群擁有一個NameNode和一些DataNode,NameNode管理檔案系統的元資料DataNode存盤實際的資料,
HDFS Client:
1、提供一些命令來管理、訪問 HDFS,比如啟動或者關閉HDFS,
2、與 DataNode 互動,讀取或者寫入資料;讀取時,要與 NameNode 互動,獲取檔案的位置資訊;寫入 HDFS 的時候,Client 將檔案切分成 一個一個的Block,然后進行存盤,
NameNode:即Master,
1、管理 HDFS 的名稱空間,
2、管理資料塊(Block)映射資訊
3、配置副本策略
4、處理客戶端讀寫請求,
DataNode:就是Slave,NameNode 下達命令,DataNode 執行實際的操作,
1、存盤實際的資料塊,
2、執行資料塊的讀/寫操作,
Secondary NameNode:并非 NameNode 的熱備,當NameNode 掛掉的時候,它并不能馬上替換 NameNode 并提供服務,
1、輔助 NameNode,分擔其作業量,
2、定期合并 fsimage和fsedits,并推送給NameNode,
3、在緊急情況下,可輔助恢復 NameNode,
Yarn架構概述
YARN 是Hadoop分布式處理框架中的資源管理和作業調度技術,負責將系統資源分配給在 Hadoop 集群中運行的各種應用程式,并調度要在不同集群節點上執行的任務,

ResourceManager:
1.處理客戶端請求,
2.監控NodeManager,
3.啟動或監控ApplicationMaster,
4.資源的分配和調度,
NodeManager:
1.管理來自單個節點上的資源,
2.處理來自ResourceManager的命令,
3.處理來自ApplicationMaster的命令,
ApplicationMaster:
1.負責資料的切分,
2.為應用程式申請資源并分配給內部的任務,
3.任務的監控與容錯,
Container:
Container的YARN中的資源抽象,它封裝了某個節點上的多維度資源,如記憶體、CPU、磁盤、網路等,
MapReduce架構概述
MapReduce負責海量資料的計算,
作業方式簡單來說就是我們要數圖書館中的所有書,你數1號書架,我數2號書架,這就是“Map”,我們人越多,數書就更快,
現在我們到一起,把所有人的統計數加在一起,這就是“Reduce”,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/472931.html
標籤:大數據
上一篇:提交表單資料后如何防止谷歌應用腳??本重新加載/重定向我的網頁..?
下一篇:Mysql性能調優-工具篇
