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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

MapReduce输入输出的处理流程及combiner

發布時間:2025/7/14 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MapReduce输入输出的处理流程及combiner 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MapReduce 的輸入輸出

MapReduce 框架運轉在<key,value> 鍵值對上,也就是說,框架把作業的輸入看成是一組<key,value>鍵值對,同樣也產生一組<key,value>鍵值對作為作業的輸出,這兩組鍵值對可能是不同的。

一個 MapReduce 作業的輸入和輸出類型如下圖所示:可以看出在整個標準的流程中,會有三組<key,value>鍵值對類型的存在。

?

?

?


?

?

MapReduce的處理流程

?

1.? Mapper任務執行過程詳解

  第一階段是把輸入目錄下文件按照一定的標準逐個進行邏輯切片,形成切片規劃。默認情況下,Split size = Block size。每一個切片由一個MapTask 處理。(getSplits)

?

  第二階段是對切片中的數據按照一定的規則解析成<key,value>對。默認規則是把每一行文本內容解析成鍵值對key 是每一行的起始位置(單位是字節),value 是本行的文本內容。(TextInputFormat)

?

  第三階段是調用 Mapper 類中的 map 方法。上階段中每解析出來的一個<k,v>,調用一次 map 方法。每次調用 map 方法會輸出零個或多個鍵值對。

?

  第四階段是按照一定的規則對第三階段輸出的鍵值對進行分區。默認是只有一個區。分區的數量就是 Reducer 任務運行的數量。默認只有一個Reducer 任務。

?

  第五階段是對每個分區中的鍵值對進行排序。首先,按照鍵進行字典序排序,對于鍵相同的鍵值對,按照值進行排序。比如三個鍵值對<2,2>、<1,3>、<2,1>,鍵和值分別是整數。那么排序后的結果是<1,3>、<2,1>、<2,2>。

?

  如果有第六階段,那么進入第六階段;如果沒有,直接輸出到文件中。

  第六階段是對數據進行局部聚合處理,也就是 combiner 處理。鍵相等的鍵值對會調用一次 reduce 方法。經過這一階段,數據量會減少。 本階段默認是沒有的

?

2.? Reducer 任務 任務 執行過程詳解

  第一階段是 Reducer 任務會主動從 Mapper 任務復制其輸出的鍵值對。Mapper 任務可能會有很多,因此 Reducer 會復制多個 Mapper 的輸出。

?

  第二階段是把復制到 Reducer 本地數據,全部進行合并,即把分散的數據合并成一個大的數據。再對合并后的數據排序。

?

  第三階段是對排序后的鍵值對調用 reduce 方法。鍵相等的鍵值對調用一次reduce 方法,每次調用會產生零個或者多個鍵值對。最后把這些輸出的鍵值對寫入到 HDFS 文件中。

?

  在整個MapReduce 程序的開發過程中,我們最大的工作量是覆蓋map 函數和覆蓋reduce 函數。

?

?


?

Mapreduce的combiner

?

  每一個 map 都可能會產生大量的本地輸出,Combiner 的作用就是對 map 端的輸出先做一次合并,以減少在 map 和 reduce 節點之間的數據傳輸量,以提高網絡 IO 性能,是 MapReduce 的一種優化手段之一。

  • combiner 是 MR 程序中 Mapper 和 Reducer 之外的一種組件
  • combiner 組件的父類就是 Reducer
  • combiner 和 reducer 的區別在于運行的位置:
    •   Combiner 是在每一個 maptask 所在的節點運行
    •   Reducer 是接收全局所有 Mapper 的輸出結果;
  • combiner 的意義就是對每一個 maptask 的輸出進行局部匯總,以減小網絡傳輸量
  • 具體實現步驟:   ? ?1、自定義一個 combiner 繼承 Reducer,重寫 reduce 方法
    • 2、在 job 中設置: job.setCombinerClass(CustomCombiner.class)
  • combiner 能夠應用的前提是不能影響最終的業務邏輯,而且,combiner 的輸出 kv 應該跟 reducer 的輸入 kv 類型要對應起來

?

  如果業務中 涉及中位數等跟數據順序 個數相關的 不要使用

  combiner本質上就是reduce 只不過是局部的reduce 進行局部匯總

?

轉載于:https://www.cnblogs.com/jifengblog/p/9277367.html

總結

以上是生活随笔為你收集整理的MapReduce输入输出的处理流程及combiner的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 亚洲欧美综合久久 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 极品色av影院 | 动漫精品一区二区三区 | avtt在线播放 | 亚洲欧洲一区二区 | 亚洲成人av综合 | 亚洲熟妇无码另类久久久 | 五月天开心激情 | 日韩欧美一级视频 | 久草三级 | 久久噜 | 中文字字幕 | 亚洲va久久久噜噜噜久久天堂 | 亚洲欧美激情精品一区二区 | 亚洲AV无码成人国产精品色 | 国产黑丝在线观看 | 亚洲欧美中文日韩在线v日本 | 九九热精品免费视频 | 婷婷在线观看视频 | 女人16一毛片 | 欧美日韩一区二区在线观看视频 | 黄色国产网站 | 色婷婷aⅴ | 成人福利视频在线 | 香蕉在线看 | 亚洲国产精品99 | 久久久久亚洲精品中文字幕 | 四虎影院永久 | 午夜激情久久 | 影音先锋人妻啪啪av资源网站 | 在线看的av网站 | 一区二区三区中文字幕在线观看 | 欧美不卡一区 | 国产麻豆一区二区 | 最近高清中文在线字幕在线观看 | 色呦呦免费 | 欧美黑人精品一区二区不卡 | 国产精品一区二区三区免费看 | 自拍99 | a毛片基地| 麻豆国产91在线播放 | 日韩大片在线 | 久免费一级suv好看的国产 | 天天干干干 | 99热日韩 | 日韩视频在线观看二区 | 欧美成人精品三级网站 | 亚洲国产精品18久久久久久 | 激情小说亚洲色图 | 理论片一区 | 中文成人在线 | 高清国产在线 | 69xx网站 | 久久精品国产亚洲av无码娇色 | 91av中文字幕 | 亚洲久久在线 | 鬼眼| 午夜视频在线观看一区 | 成人免费视频国产免费麻豆 | 久久久久久久久久91 | 精品免费观看 | 日韩性欧美 | 在线观看污污网站 | 精品理论片 | 亚洲aⅴ乱码精品成人区 | 蜜臀久久99精品久久久 | 人与拘一级a毛片 | 女人18毛片一区二区三区 | av在线资源站| 日韩一级在线观看视频 | 草莓视频在线观看18 | 亚洲天堂avav | 成人爽爽爽 | 色欲久久久天天天综合网精品 | 亚洲精品国产精品国自产 | 中文字幕在线三区 | 黄色三级a | 亚洲精品久久久久久久久久 | 中文理论片 | 国产成人二区 | 人人艹人人爱 | 无码人妻久久一区二区三区不卡 | 91亚洲国产成人精品性色 | 亚洲久久久 | jzzijzzij亚洲成熟少妇18 欧美www在线观看 | 中文字幕在线播 | 成人小视频在线免费观看 | 男女在线观看 | 亚色综合| 午夜久久久久久久久久久 | 性中国xxx极品hd | 上海贵妇尝试黑人洋吊 | 久久激情av | 国产精品色综合 | www在线观看国产 | 在线观看视频福利 | 亚洲区小说区图片区 | 色婷婷久久综合中文久久蜜桃av |