mapreduce是一種程式設計模型,具有在多節點上並行處理大資料的能力。mapreduce演算法包含兩個重要的事務,分別是map和reduce:
1、map:把大量複雜任務分解成多個少量簡單任務;
2、reduce:將多個少量任務結果進行歸類彙總。
1、map:負責資料的過濾分發
(1)、splitting:從資料來源(hdfs的資料塊)獲取資料集,隨後分解成更小的子資料集
注:每個map task都有乙個儲存map輸出結果的記憶體緩衝區,當緩衝區快滿的時候需要將緩衝區資料臨時儲存在磁碟上(不是hdfs),這裡從記憶體寫資料到磁碟的操作就是(溢寫:spill),在map task任務結束後再對磁碟中的多個溢寫資料檔案整合到乙個溢寫檔案中,然後等待分配reduce task後拉取這些輸出資料。
2、shuffle:shuffle是mapreduce的核心
(1)、copying:map task任務結束後,使用http請求拉取map階段生成的輸出檔案。
(1)、merging:合併copying的所有鍵值對(主要是相同鍵值合併)
(2)、sorting:使用健(keys)排序所有的鍵值對(>)
注:shuffle過程開始於map task資料輸出,結束於reduce task資料輸入,橫跨map端和reduce端;在這個過程中,shuffle主要任務是對map的結果進行分割槽(partition)、排序(sort)和分割(spill),相當於把一組無規則的資料轉換成一組具有一定規則的資料。
3、reduce:負責資料的計算歸併
這是最後一步,在這個過程中產生了最終的輸出結果,並將其寫到hdfs上。
IO流循序漸進四
ofstream out d fstream out ofstream out d fstream out fstream in ofstream out d fstream ate ofstream out d fstream trunc 刪除文字後新增 ofstream out d ios at...
Hadoop基礎(四) Hadoop容錯機制
三 高可用集群ha cluster hdfs對於讀寫的容錯機制是基於hdfs的副本機制 對於檔案上傳 hdfs副本放置策略是預設三個備份,當前節點乙份,同一機架不同節點乙份,不同機架任任意節點乙份。如果上傳過程中某一副本上傳失敗,那麼整個塊的上傳失敗,需要重新啟動這個副本的上傳。yarn是如何配合副...
Hadoop學習筆記(四)Hadoop偽分布式配置
這一篇是介紹hadoop偽分布式的配置中的hadoop的配置。第一部分是hadoop1.0配置,第二部分是hadoop2.0的配置,大家可以自己選擇檢視。linux配置可以檢視hadoop學習筆記 三 linux環境配置 hadoop的五個核心守護程序有 namenode,secondaryname...