hadoop是什么?Hadoop是一種分析和處理大數據的軟件平臺,是Appach的一個用Java語言所實現的開源軟件的加框,在大量計算機組成的集群當中實現了對于海量的數據進行的分布式計算。
Hadoop的框架最核心的設計就是:HDFS和MapReduce.HDFS為海量的數據提供了存儲,則MapReduce為海量的數據提供了計算.
大數據在Hadoop處理的流程可以參照下面簡單的圖來進行理解:數據是通過了Hadoop的集群處理后得到的結果。

HDFS:Hadoop Distributed File System,Hadoop的分布式文件系統.
大文件被分成默認64M一塊的數據塊分布存儲在集群機器中.如下圖中的文件 data1被分成3塊,這3塊以冗余鏡像的方式分布在不同的機器中.

MapReduce:Hadoop為每一個input split創建一個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節點.NameNode同時保存了文件系統運行的狀態信息. DataNode中存儲的是被拆分的blocks.Secondary NameNode幫助NameNode收集文件系統運行的狀態信息.JobTracker當有任務提交到Hadoop集群的時候負責Job的運行,負責調度多個TaskTracker.TaskTracker負責某一個map或者reduce任務.
原文鏈接:http://blog.csdn.net/kkdelta/article/details/7696025
