什麼是Hadoop(大數據基礎系列二)

MapReduce 是適合海量數據處理的編程模型。Hadoop是能夠運行在使用各種語言編寫的MapReduce程序: Java, Ruby, Python, and C++. MapReduce程序是平行性的,因此可使用多臺機器集羣執行大規模的數據分析非常有用的。

MapReduce程序的工作分兩個階段進行:
Map階段
Reduce 階段
輸入到每一個階段均是鍵 - 值對。此外,每一個程序員需要指定兩個函數:map函數和reduce函數,整個過程要經歷三個階段執行,即
MapReduce如何工作
讓我們用一個例子來理解這一點 –

假設有以下的輸入數據到 MapReduce 程序,統計以下數據中的單詞數量:
Welcome to Hadoop Class
Hadoop is good
Hadoop is bad

  


MapReduce 任務的最終輸出是:

bad 

1

Class 

1

good 

1

Hadoop 

3

is 

2

to 

1

Welcome 

1

point 

1、map任務執行結果到輸出寫入到本地磁盤的各個節點上,而不是HDFS。之所以選擇本地磁盤而不是HDFS是因爲,避免複製其中發生 HDFS 存儲操作。


How is MapReduce organized

完整的執行流程(執行 Map 和 Reduce 任務)是由兩種類型的實體的控制,稱爲


Jobtracker : 就像一個主(負責提交的作業完全執行)
多任務跟蹤器 : 充當角色就像從機,它們每個執行工作
對於每一項工作提交執行在系統中,有一個 JobTracker 駐留在 Namenode 和 Datanode 駐留多個 TaskTracker。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章