国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Hadoop3教程(十一):MapReduce的詳細工作流程

這篇具有很好參考價值的文章主要介紹了Hadoop3教程(十一):MapReduce的詳細工作流程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

(94)MR工作流程

本小節(jié)將展示一下整個MapReduce的全工作流程。

Map階段

首先是Map階段:

Hadoop3教程(十一):MapReduce的詳細工作流程,大數(shù)據(jù)技術(shù),mapreduce,數(shù)據(jù)庫,大數(shù)據(jù),hadoop

  1. 首先,我們有一個待處理文本文件的集合;

  2. 客戶端開始切片規(guī)劃;

  3. 客戶端提交各種信息(如切片規(guī)劃文件、代碼文件及其他配置數(shù)據(jù))到y(tǒng)arn;

  4. yarn接收信息,計算所需的MapTask數(shù)量(按照切片數(shù));

  5. MapTask啟動,讀取輸入文件,默認使用的是TextInputFormat。輸出KV對,以TextInputFormat為例,K是偏移量(行在整個文件的字節(jié)數(shù)),V是這一行的內(nèi)容;

  6. TextInputFormat讀取完畢后,將得到的KV對都輸入Mapper(),做自定義業(yè)務(wù)邏輯處理(核心處理部分);

  7. Mapper()處理完的數(shù)據(jù),放入outputCollector,也被叫做環(huán)形緩沖區(qū);環(huán)形緩沖區(qū)是位于內(nèi)存中的,其實就是個緩沖數(shù)組,里面每行數(shù)據(jù)是分左右兩部分,右邊一部分是KV數(shù)據(jù)位,存放的是輸入進來的K值和V值,左邊一部分是對應(yīng)的索引數(shù)據(jù),存放的信息有:本行KV對的索引、本行KV對的分區(qū)、keystart以及valuestart;這里的keystart和valuestart都是指數(shù)據(jù)在內(nèi)存中的存儲位置,(keystart~valuestart)表示本行key值的存儲起止位置,而(valuestart~下一行數(shù)據(jù)的keystart)表示本行value值的存儲起止位置,其他行以此類推。

    環(huán)形緩沖區(qū)默認大小是100M,它有個有趣的機制用來協(xié)調(diào)寫 + 磁盤持久化。當(dāng)寫滿到80%的時候,環(huán)形緩沖區(qū)會開始進行反向逆寫操作。

    什么是反向逆寫呢?

    可以結(jié)合數(shù)組做簡單理解,就是假設(shè)數(shù)組有100個位置,即索引位0~99,當(dāng)寫到80%位置,即從索引0開始,到索引79寫完了之后,就開始反向逆寫,從索引99開始往前寫,依次是98/97這樣子。

    為什么要這么設(shè)置?

    很簡單,當(dāng)寫滿到80%的時候,系統(tǒng)會開啟一個線程,將這80%的數(shù)據(jù)持久化到磁盤,但持久化的同時,一般希望不會影響正常的寫,于是留了20%的空位置,供正常的寫操作。因此是持久化 + 寫,并行運行。

    想象一下,如果規(guī)定只有寫滿到100%之后才能持久化到磁盤,或者說溢出到磁盤,那么在它持久化的過程中,整個寫流程就必須暫停,直到持久化完成后,環(huán)形緩沖區(qū)清空后才能繼續(xù)寫,這個時間消耗未免太長,效率太低。這么看的話,它這個80%后開始逆寫的設(shè)置,還挺棒的。

    這里有個潛在的問題,就是如果系統(tǒng)寫的很快,在沒有持久化完那80%之前,那20%的空位置就寫滿了,這時候會發(fā)生什么情況?

    這時候,寫流程就不得不暫停,直到持久化完成之后再恢復(fù)寫。

  8. 注意,上一步中持久化,或者說溢寫數(shù)據(jù)之前,會先將數(shù)據(jù)分區(qū)(不同分區(qū)的數(shù)據(jù)在Reduce階段將會被送進不同的ReduceTask)。然后分區(qū)內(nèi)做排序,一般使用快排。

    那排序是針對什么來排呢?

    不是數(shù)據(jù)的KV,而是數(shù)據(jù)的那幾個索引。

  9. 將數(shù)據(jù)溢出至文件。注意,單次溢寫的數(shù)據(jù)雖然是寫在一個文件里,但是是分區(qū)且分區(qū)內(nèi)有序的。

  10. 在數(shù)據(jù)溢出數(shù)次后,我們就有了好幾個文件,接下來我們將這些文件merge,做歸并排序,相當(dāng)于是合并成一個文件,然后將結(jié)果存儲在磁盤。

  11. 做預(yù)聚合。比如說如果有兩個<a, 1>,那可以直接合并成<a, 2>。當(dāng)然,這一步并不是必要的,可以結(jié)合實際場景具體看是否需要。

到這里,一個MapTask的工作就正式結(jié)束了,其他的MapTask就是重復(fù)以上過程。

Reduce階段

Reduce階段:

Hadoop3教程(十一):MapReduce的詳細工作流程,大數(shù)據(jù)技術(shù),mapreduce,數(shù)據(jù)庫,大數(shù)據(jù),hadoop

  1. 一般情況下,等所有MapTask任務(wù)都完成后,就會啟動響應(yīng)數(shù)據(jù)的ReduceTask,并告知每個ReduceTask它需要處理的數(shù)據(jù)范圍。

    這里說的是一般情況下,實際上我們也可以設(shè)置,等到一部分MapTask完成之后就先啟動幾個ReduceTask做處理,相當(dāng)于Map階段和Reduce階段同時進行。這個比較適合MapTask很多的情況,比如說有100個MapTask,等到100個都執(zhí)行完,才進入Reduce階段,未免太慢了,所以可以這樣并行走。

  2. ReduceTask 主動 從MapTask的結(jié)果數(shù)據(jù)中去拉取需要的數(shù)據(jù),然后做合并文件 + 歸并排序。

    舉個例子,ReduceTask_1可能會從MapTask_1拉取指定分區(qū)數(shù)據(jù),也會從MapTask_2中拉取該分區(qū)的數(shù)據(jù),這樣的話就會有多個文件,而且雖然每個文件內(nèi)部是有序的(MapTask處理過),但是不同文件之間可能是無序的,因此合并文件 + 歸并排序,是很有必要的。

  3. 對上一步產(chǎn)生的結(jié)果,一次讀取一組,送進Reducer()去做業(yè)務(wù)邏輯處理。這里的一組是KEY值相同作為一組,因為上一步中已經(jīng)排序過了,所以KEY值相同的會被放在一起,直接取這一組就可以了。

  4. 分組,暫且不表;

  5. Reducer()處理完了之后,由OutputFormat往外輸出,默認是TextOutputFormat,即輸出成文本文件。

這就是整個MR處理的流程。文章來源地址http://www.zghlxwxcb.cn/news/detail-724092.html

參考文獻

  1. 【尚硅谷大數(shù)據(jù)Hadoop教程,hadoop3.x搭建到集群調(diào)優(yōu),百萬播放】

到了這里,關(guān)于Hadoop3教程(十一):MapReduce的詳細工作流程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Hadoop3教程(三十四):(生產(chǎn)調(diào)優(yōu)篇)MapReduce生產(chǎn)經(jīng)驗匯總

    Hadoop3教程(三十四):(生產(chǎn)調(diào)優(yōu)篇)MapReduce生產(chǎn)經(jīng)驗匯總

    MR程序執(zhí)行效率的瓶頸,或者說當(dāng)你覺得你的MR程序跑的比較慢的時候,可以從以下兩點來分析: 計算機性能 節(jié)點的CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等,這種屬于硬件上的檢查; IO操作上的檢查 是否發(fā)生了數(shù)據(jù)傾斜?即單一reduce處理了絕大部分數(shù)據(jù) Map運行時間過長,導(dǎo)致Reduce一直在

    2024年02月08日
    瀏覽(26)
  • Hadoop3教程(三十一):(生產(chǎn)調(diào)優(yōu)篇)異構(gòu)存儲

    Hadoop3教程(三十一):(生產(chǎn)調(diào)優(yōu)篇)異構(gòu)存儲

    異構(gòu)存儲,也叫做冷熱數(shù)據(jù)分離 。其中,經(jīng)常使用的數(shù)據(jù)被叫做是熱數(shù)據(jù),不經(jīng)常使用的數(shù)據(jù)被叫做冷數(shù)據(jù)。 把冷熱數(shù)據(jù),分別存儲在不同的存儲介質(zhì)里,從而達到對每個介質(zhì)的利用率最高,從而實現(xiàn)整體最佳性能,或者說性價比更高(比如說高性能硬盤放經(jīng)常使用的數(shù)據(jù)

    2024年02月08日
    瀏覽(22)
  • MapReduce概述及工作流程

    MapReduce概述及工作流程

    mapreduce原語(獨創(chuàng)) mapreduce工作流程(重點) MR作業(yè)提交流程(重點) YARN RM-HA搭建(熟練) 運行自帶的wordcount(了解) 動手寫wordcount(熟練) MapReduce原語 hadoop MapReduce框架可以讓你的應(yīng)用在集群中 可靠地 容錯地 并行 處理TB級別的數(shù)據(jù) 1024TB=1PB? 1024PB=1EB? 1024EB=1ZB MapReduc

    2023年04月08日
    瀏覽(23)
  • mapreduce 的工作原理以及 hdfs 上傳文件的流程

    推薦兩篇博文 mapreduce 的工作原理: 圖文詳解 MapReduce 工作流程_mapreduce工作流程_Shockang的博客-CSDN博客 hdfs 上傳文件的流程 HDFS原理 - 知乎

    2024年02月10日
    瀏覽(26)
  • Hadoop3 - MapReduce COVID-19 案例實踐

    Hadoop3 - MapReduce COVID-19 案例實踐

    上篇文章對 MapReduce 進行了介紹,并編寫了 WordCount 經(jīng)典案例的實現(xiàn),本篇為繼續(xù)加深 MapReduce 的用法,實踐 COVID-19 新冠肺炎案例,下面是上篇文章的地址: https://blog.csdn.net/qq_43692950/article/details/127195121 COVID-19,簡稱“新冠肺炎”,世界衛(wèi)生組織命名為“2019冠狀病毒病” [1-

    2024年02月08日
    瀏覽(18)
  • Hadoop之MapReduce 詳細教程

    Hadoop之MapReduce 詳細教程

    MapReduce 思想在生活中處處可見?;蚨嗷蛏俣荚佑|過這種思想。MapReduce的思想核心是“分而治之”,適用于大量復(fù)雜的任務(wù)處理場景(大規(guī)模數(shù)據(jù)處理場景)。即使是發(fā)布過論文實現(xiàn)分布式計算的谷歌也只是實現(xiàn)了這種思想,而不是自己原創(chuàng)。 1、 Map 負責(zé)“分” ,即把復(fù)雜

    2024年02月03日
    瀏覽(19)
  • 大數(shù)據(jù)面試題:請描述MapReduce中shuffle階段的工作流程,如何優(yōu)化shuffle階段?

    大數(shù)據(jù)面試題:請描述MapReduce中shuffle階段的工作流程,如何優(yōu)化shuffle階段?

    map階段處理的數(shù)據(jù)如何傳遞給reduce階段 ,是MapReduce框架中最關(guān)鍵的一個流程,這個流程就叫 shuffle 。 shuffle: 洗牌、發(fā)牌——(核心機制:數(shù)據(jù)分區(qū),排序,合并)。 shuffle是Mapreduce的核心,它分布在Mapreduce的map階段和reduce階段。一般把從Map產(chǎn)生輸出開始到Reduce取得數(shù)據(jù)作為輸

    2024年02月07日
    瀏覽(20)
  • kafka入門,Kafka Broker工作流程、Broker重要參數(shù)(十一)

    kafka入門,Kafka Broker工作流程、Broker重要參數(shù)(十一)

    在zookeeper的服務(wù)端存儲的Kafka相關(guān)信息 1)/kafka/brokers/ids [0,1,2] 記錄有哪些服務(wù)器 2)/kafka/brokers/topics/first/partitions/0/state 記錄誰是leader,有哪些服務(wù)器可用 3)/kafka/controller 輔助選舉leader 1)broker啟動后在zk中注冊 2)controller誰先注冊,誰說了算 3)由選舉出來的Controller監(jiān)聽bro

    2024年02月11日
    瀏覽(59)
  • 大數(shù)據(jù)-安裝 Hadoop3.1.3 詳細教程-偽分布式配置(Centos7)

    大數(shù)據(jù)-安裝 Hadoop3.1.3 詳細教程-偽分布式配置(Centos7)

    **相關(guān)資源:**https://musetransfer.com/s/q43oznf6f(有效期至2023年3月16日)|【Muse】你有一份文件待查收,請點擊鏈接獲取文件 1.檢查是否安裝ssh (CentOS 7 即使是最小化安裝也已附帶openssh 可跳過本步驟) 若已安裝進行下一步驟 若未安裝 請自行百度 本教程不做過多講解 2.配置ss

    2023年04月08日
    瀏覽(23)
  • Hadoop3.0大數(shù)據(jù)處理學(xué)習(xí)3(MapReduce原理分析、日志歸集、序列化機制、Yarn資源調(diào)度器)

    Hadoop3.0大數(shù)據(jù)處理學(xué)習(xí)3(MapReduce原理分析、日志歸集、序列化機制、Yarn資源調(diào)度器)

    前言:如果想知道一堆牌中有多少張紅桃,直接的方式是一張張的檢查,并數(shù)出有多少張紅桃。 而MapReduce的方法是,給所有的節(jié)點分配這堆牌,讓每個節(jié)點計算自己手中有幾張是紅桃,然后將這個數(shù)匯總,得到結(jié)果。 官方介紹:MapReduce是一種分布式計算模型,由Google提出,

    2024年02月08日
    瀏覽(45)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包