轉帖|使用教程|編輯:龔雪|2014-08-01 11:36:49.000|閱讀 1618 次
概述:作為Hadoop教程的第一個系列,本篇圖文介紹了Hadoop的起源和體系構架。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
1.Hadoop 發展歷史
1.1 Hadoop 產生背景
Hadoop最早起源于Nutch。Nutch是一個開源的網絡搜索引擎,始于2002年,Nutch的設計目標是構建一個大型的全網搜索引擎,包括抓取網頁,索引,查詢等,但是隨著數據量的增加,遇到了擴展問題。直至2003年google發表了一篇關于google的文件系統GFS,該論文描述了google搜索引擎網頁數據的存儲架構,該架構解決了Nutch遇到的問題,隨即實現了自己的分布式文件系統,即NDFS(此間google只是開源思想,但并未開源代碼),到了2004年的google的另一篇論文MapReduce:simplified data processing on large cluster ,震驚世界,該論文描述了分布式計算的框架,但也只是開源思想,并不開源代碼,Nutch的開發人員靠自己完成了實現,由于NDFS和MapReduce 的成功,2006年Nutch的開發人員,隨即將其移出Nutch,成為Lucene的子項目,稱為Hadoop(據說是Doug Cutting兒子的玩具大象的名字),隨著Hadoop的發展,2008年,Hadoop已經成為Apache基金會的頂級項目,也促生了Hadoop家族其他項目的發展。
1.2 Hadoop思想之源
Hadoop的思想主要來源于google,此間google的倆大論文GFS,MapReduce起了決定性的作用,而google的低成本之道(不使用超級計算機,不用存儲;大量使用PC server,提供冗余的集群服務...)也是成功的根本。而google的成功也得益于Page Rank算法。
更加詳盡有關Page Rank可以參考://blog.csdn.net/v_july_v/article/details/6142146
目前hadoop發展迅速,是實現云計算標準開源軟件,已經可以在數千節點上面運行,處理數據量和速度有很可觀的效果。同時,hadoop家族的項目也得到了相應的發展。
2 Hadoop的架構
2.1 Hadoop的倆大支柱:HDFS和MapReduce
其中HDFS用于大規模數據的分布式存儲,而MapReduce則構建在HDFS之上,對數據進行分布式計算。
2.1 HDFS架構
HDFS是一個具有高容錯性的分布式系統,適合部署在廉價的機器上,HDFS可以提供高吞吐量的數據訪問,適合大數據集的應用,主要有client,NameNode,SecondaryNameNode,DataNode幾個組件構成。
client:通過于NameNode于DataNode交互訪問HDFS文件。
NameNode:HDFS的守護程序,是個“總管”,記錄文件是如何分割成數據塊的,以及這些數據塊存儲到哪些節點,對IO和內存進行集中管理,且是個單點。
SecondaryNameNode:監控HDFS狀態的輔助后臺程序,每個集群都有一個,與NameNode進行通訊,定期存儲HDFS元數據快照,并且在NameNode故障的時候,提供備份作用。
DataNode:負責把HDFS數據塊讀寫到本地文件系統,并將數據定期匯報給NameNode,DataNode以固定大小的block(默認64MB)為基本單位。
2.2 MapReduce 架構
同HDFS一樣,MR也采用了Master/Slave模式,有以下組件:client,JobTracker,TaskTracker,Task.
JobTracker:負責資源監控和作業調度,運行主節點,對HDFS總控,決定哪些文件an參與處理,然后分割task并分配節點,重啟失敗的task等
TaskTracker:位于slave節點上,與datanode結合,管理各自節點上的task,與JobTracker交互(周期性的通過 heartbeat將資源使用情況和任務進度匯報給jobtracker)。TaskTracker通過使用“slot”等量劃分(劃分方法用戶自己決定)節點上的資源量,分為Mapslot 和Reduceslot來提供Map任務和Reduce任務的使用。
Task:Map Task和Reduce Task,有TaskTracker啟動。
Map Task流程:Map Task先將對應的split(MapReduce處理單位)迭代解析成一個個的key/alue對,依次調用map函數進行處理,最終將臨時結果存到本地磁盤中,其臨時數據分成若干個partition,每個partition將被一個reduce task 處理。
reduce task流程:讀取partition部分,對結果排序,依次讀取,調用用戶自己的reduce函數處理,結果存到HDFS上面。
參考書籍:Hadoop實戰,Hadoop技術內幕 深入解析MapReduce架構設計與實現原理。
來源:編程大巴
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都控件網