天天看點

分布式計算Hadoop簡介

Hadoop是什麼:Hadoop是一個開發和運作處理大規模資料的軟體平台,是Appach的一個用java語言實作開源軟體架構,實作在大量計算機組成的叢集中對海量資料進行分布式計算。

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

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

分布式計算Hadoop簡介

HDFS:Hadoop Distributed File System,Hadoop的分布式檔案系統。

大檔案被分成預設64M一塊的資料塊分布存儲在叢集機器中。

如下圖中的檔案 data1被分成3塊,這3塊以備援鏡像的方式分布在不同的機器中。

分布式計算Hadoop簡介

MapReduce:Hadoop為每一個input

split建立一個task調用Map計算,在此task中依次處理此split中的一個個記錄(record),map會将結果以key--value

的形式輸出,hadoop負責按key值将map的輸出整理後作為Reduce的輸入,Reduce

Task的輸出為整個job的輸出,儲存在HDFS上。

分布式計算Hadoop簡介

Hadoop的叢集主要由 NameNode,DataNode,Secondary NameNode,JobTracker,TaskTracker組成。

如下圖所示:

分布式計算Hadoop簡介

NameNode中記錄了檔案是如何被拆分成block以及這些block都存儲到了那些DateNode節點。

NameNode同時儲存了檔案系統運作的狀态資訊。

DataNode中存儲的是被拆分的blocks。

Secondary NameNode幫助NameNode收集檔案系統運作的狀态資訊。

JobTracker當有任務送出到Hadoop叢集的時候負責Job的運作,負責排程多個TaskTracker。

TaskTracker負責某一個map或者reduce任務。

分布式計算Hadoop簡介

微信公衆号:

<a target="_blank" href="https://yqfile.alicdn.com/img_e00999465d1c2c1b02df587a3ec9c13d.jpg">猿人谷</a>

如果您認為閱讀這篇部落格讓您有些收獲,不妨點選一下右下角的【推薦】

如果您希望與我交流互動,歡迎關注微信公衆号

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接。