日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MapReduce执行过程

發布時間:2025/6/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MapReduce执行过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mapper任務的執行過程:

  • 第一階段是把輸入文件按照一定的標準分片(InputSplit),每個輸入片的大小是固定的。默認情況下,輸入片(InputSplit)的大小與數據塊(Block)的大小是相同的。如果數據塊(Block)的大小是默認值64MB,輸入文件有兩個,一個是32MB,一個是72MB。那么小的文件是一個輸入片,大文件會分為兩個數據塊,那么是兩個輸入片。一共產生三個輸入片。每一個輸入片由一個Mapper進程處理。這里的三個輸入片,會有三個Mapper進程處理。
  • 第二階段是對輸入片中的記錄按照一定的規則解析成鍵值對。有個默認規則是把每一行文本內容解析成鍵值對。“鍵”是每一行的起始位置(單位是字節),“值”是本行的文本內容。
  • 第三階段是調用Mapper類中的map方法。第二階段中解析出來的每一個鍵值對,調用一次map方法。如果有1000個鍵值對,就會調用1000次map方法。每一次調用map方法會輸出零個或者多個鍵值對。
  • 第四階段是按照一定的規則對第三階段輸出的鍵值對進行分區。比較是基于鍵進行的。比如我們的鍵表示省份(如北京、上海、山東等),那么就可以按照不同省份進行分區,同一個省份的鍵值對劃分到一個區中。默認是只有一個區分區的數量就是Reducer任務運行的數量。默認只有一個Reducer任務。
  • 第五階段是對每個分區中的鍵值對進行排序。首先,按照鍵進行排序,對于鍵相同的鍵值對,按照值進行排序。比如三個鍵值對<2,2>、<1,3>、<2,1>,鍵和值分別是整數。那么排序后的結果是<1,3>、<2,1>、<2,2>。如果有第六階段,那么進入第六階段;如果沒有,直接輸出到本地的linux文件中。
  • 第六階段是對數據進行歸約處理,也就是reduce處理。鍵相等的鍵值對會調用一次reduce方法。經過這一階段,數據量會減少。歸約后的數據輸出到本地的linxu文件中。本階段默認是沒有的,需要用戶自己增加這一階段的代碼

Reducer任務的執行過程

  • 第一階段是Reducer任務會主動從Mapper任務復制其輸出的鍵值對。Mapper任務可能會有很多,因此Reducer會復制多個Mapper的輸出。
  • 第二階段是把復制到Reducer本地數據,全部進行合并,即把分散的數據合并成一個大的數據。再對合并后的數據排序。
  • 第三階段是對排序后的鍵值對調用reduce方法。鍵相等的鍵值對調用一次reduce方法,每次調用會產生零個或者多個鍵值對。最后把這些輸出的鍵值對寫入到HDFS文件中。
  • 在整個MapReduce程序的開發過程中,最大的工作量是覆蓋map函數和覆蓋reduce函數。

----------------------------------------------------------------------------

map

? ? ?1.讀取輸入文件,解析成<k,v>,每個<k,v>調用一次map

? ? ?2.map()

? ? ?3.分區(默認1)

? ? ?4.排序、分組(shuffle)

? ? ?5.規約(combine可選)

reduce

  1.網絡copy

? ? ? 2.reduce()(先排序)

  3.輸出

轉載于:https://www.cnblogs.com/mlj5288/p/4449716.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的MapReduce执行过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。