Hadoop是什么?Hadoop是一個開發(fā)和運行處理大規(guī)模數(shù)據(jù)的軟件平臺,是Appach的一個用java語言實現(xiàn)開源軟件框架,實現(xiàn)在大量計算機組成的集群中對海量數(shù)據(jù)進行分布式計算. Hadoop框架中最核心設計就是:HDFS和MapReduce.HDFS提供了海量數(shù)據(jù)的存儲,MapReduce提供了對數(shù)據(jù)的計算. 數(shù)據(jù)在Hadoop中處理的流程可以簡單的按照下圖來理解:數(shù)據(jù)通過Haddop的集群處理后得到結果. HDFS:Hadoop Distributed File System,Hadoop的分布式文件系統(tǒng). 如下圖中的文件 data1被分成3塊,這3塊以冗余鏡像的方式分布在不同的機器中. MapReduce:Hadoop為每一個input split創(chuàng)建一個task調用Map計算,在此task中依次處理此split中的一個個記錄(record),map會將結果以key--value的形式輸出,hadoop負責按key值將map的輸出整理后作為Reduce的輸入,Reduce Task的輸出為整個job的輸出,保存在HDFS上. Hadoop的集群主要由 NameNode,DataNode,Secondary NameNode,JobTracker,TaskTracker組成. 如下圖所示: NameNode中記錄了文件是如何被拆分成block以及這些block都存儲到了那些DateNode節(jié)點. NameNode同時保存了文件系統(tǒng)運行的狀態(tài)信息. DataNode中存儲的是被拆分的blocks. Secondary NameNode幫助NameNode收集文件系統(tǒng)運行的狀態(tài)信息. JobTracker當有任務提交到Hadoop集群的時候負責Job的運行,負責調度多個TaskTracker. TaskTracker負責某一個map或者reduce任務. 【編輯推薦】 【責任編輯:黃丹 TEL:(010)68476606】
|
|