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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

第十六期:简单的介绍一下大数据中最重要的MapReduce

發布時間:2023/12/10 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第十六期:简单的介绍一下大数据中最重要的MapReduce 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MapReduce是分布式運行的,由兩個階段組成:Map和Reduce,Map階段是一個獨立的程序,有很多個節點同時運行,每個節點處理一部分數據。

?


MapReduce執行流程圖

概述

MapReduce是一種分布式計算模型,由Google提出,主要用于搜索領域,解決海量數據的計算問題。

MapReduce是分布式運行的,由兩個階段組成:Map和Reduce,Map階段是一個獨立的程序,有很多個節點同時運行,每個節點處理一部分數據。

Reduce階段是一個獨立的程序,有很多個節點同時運行,每個節點處理一部分數據。

使用

MapReduce框架都有默認實現,用戶只需要覆蓋map()和reduce()兩個函數,即可實現分布式計算,非常簡單。

這兩個函數的形參和返回值都是,使用的時候一定要注意構造。

執行流程(此處舉例說明)

  • 一個文本(在HDFS上面保存,兩個block)中每一個單詞的出現的次數:?
  • ????hello?you?hello?marry?
  • ????hello?me?really?
  • ????????????----->block-1?
  • ?????????????
  • ????hello?kate?ready?
  • ????xiao?wang?hello?tomcat?
  • ????????????----->block-2?
  • 1.獲取每一個block塊中的文本,遍歷所有,回去其中的一行str

    因為要統計的是每一個單詞i的次數,所以還需要直到文本中有哪些單詞,可以根據字符串的特點,使用split()進行切割。

  • String[]?words=str.split("");?
  • 根據要求,需將每一個單詞i轉換為的形式,k為單詞本身,v為單詞出現的次數。

    2.因為mr的計算是分布式的 ,每一個map(稱之為一個mapper task)計算其中的一個block塊數據。

  • map階段:?
  • ????輸入<K1,V1>?
  • ????????k1,偏移量,v1,當前行文本內容?
  • ????????map()函數操作?
  • ????輸出<K2,V2>?
  • ????????k2,具體單詞,v2,單詞對應的統計項,比如次數?
  • ????輸出<K2,V2>?
  • shuffle階段?
  • 研究后發現,如果按照<key,1>這種方式向reduce輸出數據的時候,會有?
  • 大量的冗余數據。?
  • 比如map階段之后有5個hello,則輸出<hello,1>,<hello,1>,<hello,1>,?
  • <hello,1>,<hello,1>5次,實際上會對網絡造成一定的壓力,能不能對?
  • 這5個<hello,1>進行一個進入reduce之前的本地組合?比如成為?
  • <hello,5>或者<hello,[1,1,1,1,1]>.?
  • 這個過程成為shuffle,洗牌重組階段,達到上述的結果,稱之為規約。?
  • >>>shuffle階段,也就是對map的輸出進行重新洗牌:?
  • 分區、分組、排序?
  • <K2,V2>...===><K2,V2s>?
  • reduce階段?
  • 接收map的輸出結果<key,values>?
  • 對這個結果進行匯總統計,針對values,進行簡單的累加,計算得出key?
  • 對應的次數?
  • reduce針對一個key調用一次reduce()函數?
  • =====>reduce?階段?
  • 輸入<K2,V2>?
  • ????K2,就是map的輸出的K2,V2s是map經過shuffle之后的結果集?
  • ????reduce()函數操作?
  • 轉化為<K3,V3>???
  • 經過上述操作之后,系統會將計算結果輸出給用戶,一般會先存儲(落地)到hdfs,然后反饋給用戶。

    到此為止,MapReduce執行完畢,接下來就可以進行大數據的其他一系列操作了。


    閱讀目錄(置頂)(長期更新計算機領域知識)https://blog.csdn.net/weixin_43392489/article/details/102380691

    閱讀目錄(置頂)(長期更新計算機領域知識)https://blog.csdn.net/weixin_43392489/article/details/102380882

    總結

    以上是生活随笔為你收集整理的第十六期:简单的介绍一下大数据中最重要的MapReduce的全部內容,希望文章能夠幫你解決所遇到的問題。

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