Hadoop的三大發行版本
Hadoop的三大發行版本包括:Apache、Cloudera、Hortonworks。
其中:
Apache版本是最原始(最基礎)的版本
對於入門學習的新手比較推薦。
- 官網地址:http://hadoop.apache.org/releases.html
- 下載地址:https://archive.apache.org/dist/hadoop/common/
Cloudera在市場常見的互聯網企業中用的較多
安裝及組件最爲方便。(但是出現bug時,需要解決就要收費,一般是工程師按修復時長收費)
- 官網地址:https://www.cloudera.com/downloads/cdh/5-10-0.html
- 下載地址:http://archive-primary.cloudera.com/cdh5/cdh/5/
Hortonworks文檔較好,
但是由於2011成立,時間較晚,所以市場上用的並不常見。
- 官網地址:https://hortonworks.com/products/data-center/hdp/
- 下載地址:https://hortonworks.com/downloads/#data-platform
Hadoop的優勢
高可靠性:
Hadoop底層維護了多個數據副本,默認副本數爲3個。
所以設備出問題時也可以在其他服務器上找到備份。
高擴展性:
在集羣間分配任務數據,可拓展至數上千的節點。(相當於增加多臺服務器)
高效性:
在MapReduce下,Hadoop可以多臺服務器並行工作,任務處理速度非常快。
高容錯性:
當一個節點上的任務出錯時,可以自動將失敗的任務重新分配給其他節點。
Hadoop的組成
Hadoop1.x與Hadoop2.x的區別
Hadoop1.x的組成
common(輔助工具)+HDFS(數據存儲)+MapReduce(計算+資源調度)
Hadoop2.x的組成
common(輔助工具)+HDFS(數據存儲)+MapReduce(計算)+Yarn(資源調度)
可以看出,Hadoop1.x中,MapReduce同時處理業務邏輯運算和資源調度,耦合性比較大。
在Hadoop2.x中,他將MapReduce中的資源調度抽取出來,變成了Yarn,單獨負責資源調度,而MapReduce則只負責計算。
HDFS架構
- NameNode(nn):存儲元數據。如文件名、目錄、屬性等。(等價於一本書的目錄)
- DataNode(dn):存儲文件的塊信息,及文件的校驗和。(等價於書裏面內容)
- Secondary NameNode(2nn):監控HDFS狀態的後臺程序。
YARN 框架
ResourceManager負責監控所有的NodeManager,是整個集羣的老大。NodeManager是單個節點資源的老大。ApplicationMaster是集羣上運行的任務。
ResourceManager:(整個集羣的老大)
- 處理客戶端請求(資源調度,管理所有資源、磁盤等)
- 監控NodeManager
- 啓動或監控ApplicationMaster
- 資源的分配和調度
NodeManager:(單節點資源的老大)
- 管理單個節點的資源
- 處理來自ResourceMaster的命令
- 處理來自ApplicationMaster的命令
ApplicationMaster:
- 對數據進行切分
- 申請資源、分配任務
- 任務監控與容錯
Container:
是YARN中資源的抽象,相當於CPU、磁盤、網絡等。(虛擬化的)
MapReduce架構
MapReduce將計算過程分爲兩個階段:Map和Reduce
- Map階段並行處理輸入數據(分)
- Reduce階段對Map結果進行彙總(合)