一.什么是Hadoop
Hadoop 是一個適合大數據的分布式存儲和計算平台。
Hadoop的廣義和狹義區分:
狹義的Hadoop:指的是一個框架,Hadoop是由三部分組成:HDFS:分布式文件系統--》存儲;MapReduce:分布式離線計算框架--》計算;Yarn:資源調度框架。
廣義的Hadoop:廣義Hadoop是不僅僅包含Hadoop框架,除了Hadoop框架之外還有一些輔助框架。Flume:日志數據采集,Sqoop:關系型數據庫數據的采集;
Hive:深度依賴Hadoop框架完成計算(sql),Hbase:大數據領域的數據庫(mysql)Sqoop:數據的導出廣義Hadoop指的是一個生態圈。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
二.Hadoop的特點
1).Hadoop優缺點:
Hadoop的優點:
1.Hadoop具有存儲和處理數據能力的高可靠性。
2.Hadoop通過可用的計算機集群分配數據,完成存儲和計算任務,這些集群可以方便地擴展到數以千計的節點中,具有高擴展性。
3.Hadoop能夠在節點之間進行動態地移動數據,並保證各個節點的動態平衡,處理速度非常快,具有高效性。
4.Hadoop能夠自動保存數據的多個副本,並且能夠自動將失敗的任務重新分配,具有高容錯性。
2).Hadoop的缺點::
1.Hadoop不適用於低延遲數據訪問。
2.Hadoop不能高效存儲大量小文件。
3.Hadoop不支持多用戶寫入並任意修改文件。
三.Apache Hadoop的重要組成
1.Hadoop=HDFS(分布式文件系統)+MapReduce(分布式計算框架)+Yarn(資源協調框架)+Common模塊。
Hadoop HDFS:(Hadoop Distribute File System )一個高可靠、高吞吐量的分布式文件系統 --核心思想,分而治之,數據切割、制作副本、分散儲存。
圖中涉及到幾個角色:
NameNode(nn):存儲文件的元數據,比如文件名、文件目錄結構、文件屬性(生成時間、副本數、文件權限),以及每個文件的塊列表和塊所在的DataNode等
SecondaryNameNode(2nn):輔助NameNode更好的工作,用來監控HDFS狀態的輔助后台程序,每隔一段時間獲取HDFS元數據快照。
DataNode(dn):在本地文件系統存儲文件塊數據,以及塊數據的校驗。
注意:NN,2NN,DN這些既是角色名稱,進程名稱,代指電腦節點名稱!!
2.Hadoop MapReduce:一個分布式的離線並行計算框架
拆解任務、分散處理、匯整結果
MapReduce計算 = Map階段 + Reduce階段
Map階段就是“分”的階段,並行處理輸入數據;
Reduce階段就是“合”的階段,對Map階段結果進行匯總;
3. Hadoop YARN:作業調度與集群資源管理的框架
計算資源協調
Yarn中有如下幾個主要角色,同樣,既是角色名、也是進程名,也指代所在計算機節點名稱。
ResourceManager(rm):處理客戶端請求、啟動/監控ApplicationMaster、監控NodeManager、資源分配與調度;
NodeManager(nm):單個節點上的資源管理、處理來自ResourceManager的命令、處理來自ApplicationMaster的命令;
ApplicationMaster(am):數據切分、為應用程序申請資源,並分配給內部任務、任務監控與容錯
Container:對任務運行環境的抽象,封裝了CPU、內存等多維資源以及環境變量、啟動命令等任務運行相關的信息。
ResourceManager是老大,NodeManager是小弟,ApplicationMaster是計算任務專員。
4. Hadoop Common:支持其他模塊的工具模塊(Configuration、RPC、序列化機制、日志操作)。