1. 程式人生 > >hadoop原來是這樣的!

hadoop原來是這樣的!

Hadoop是什麼?

Hadoop是一個開發和執行處理大規模資料的軟體平臺,是Appach的一個用java語言實現開源軟體框架,實現在大量計算機組成的叢集中對海量資料進行分散式計算.

Hadoop框架中最核心設計就是:HDFS和MapReduce.HDFS提供了海量資料的儲存,MapReduce提供了對資料的計算.

資料在Hadoop中處理的流程可以簡單的按照下圖來理解:資料通過Haddop的叢集處理後得到結果.

 

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任務.

 

獲取關於Hadoop更多原始碼講解視訊資料可以掃描下方微信二維碼: