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

MapReduce分布式計(jì)算(二)

這篇具有很好參考價(jià)值的文章主要介紹了MapReduce分布式計(jì)算(二)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

MapReduce工作流程

原始數(shù)據(jù)File

1T數(shù)據(jù)被切分成塊存放在HDFS上,每一個(gè)塊有128M大小

數(shù)據(jù)塊Block

hdfs上數(shù)據(jù)存儲(chǔ)的一個(gè)單元,同一個(gè)文件中塊的大小都是相同的
因?yàn)閿?shù)據(jù)存儲(chǔ)到HDFS上不可變,所以有可能塊的數(shù)量和集群的計(jì)算能力不匹配 我們需要一個(gè)動(dòng)態(tài)調(diào)整本次參與計(jì)算節(jié)點(diǎn)數(shù)量的一個(gè)單位

切片Split

切片是一個(gè)邏輯概念
在不改變現(xiàn)在數(shù)據(jù)存儲(chǔ)的情況下,可以控制參與計(jì)算的節(jié)點(diǎn)數(shù)目 通過切片大小可以達(dá)到控制計(jì)算節(jié)點(diǎn)數(shù)量的目的
有多少個(gè)切片就會(huì)執(zhí)行多少個(gè)Map任務(wù)

MapReduce分布式計(jì)算(二)

MapReduce分布式計(jì)算(二)

MapReduce分布式計(jì)算(二)

一般切片大小為Block的整數(shù)倍(2 1/2)
防止多余創(chuàng)建和很多的數(shù)據(jù)連接
如果Split>Block ,計(jì)算節(jié)點(diǎn)少了
如果Split<Block ,計(jì)算節(jié)點(diǎn)多了
默認(rèn)情況下,Split切片的大小等于Block的大小 ,默認(rèn)128M 一個(gè)切片對(duì)應(yīng)一個(gè)MapTask

MapTask

map默認(rèn)從所屬切片讀取數(shù)據(jù),每次讀取一行(默認(rèn)讀取器)到內(nèi)存中
我們可以根據(jù)自己書寫的分詞邏輯(空格分隔).計(jì)算每個(gè)單詞出現(xiàn)的次數(shù) 這是就會(huì)產(chǎn)生 (Map<String,Integer>)臨時(shí)數(shù)據(jù),存放在內(nèi)存中
但是內(nèi)存大小是有限的,如果多個(gè)任務(wù)同時(shí)執(zhí)行有可能內(nèi)存溢出(OOM) 如果把數(shù)據(jù)都直接存放到硬盤,效率太低
我們需要在OOM和效率低之間提供一個(gè)有效方案
可以現(xiàn)在內(nèi)存中寫入一部分,然后寫出到硬盤

環(huán)形數(shù)據(jù)緩沖區(qū)

可以循環(huán)利用這塊內(nèi)存區(qū)域,減少數(shù)據(jù)溢寫時(shí)map的停止時(shí)間
每一個(gè)Map可以獨(dú)享的一個(gè)內(nèi)存區(qū)域
在內(nèi)存中構(gòu)建一個(gè)環(huán)形數(shù)據(jù)緩沖區(qū)(kvBuffer),默認(rèn)大小為100M
設(shè)置緩沖區(qū)的閾值為80%,當(dāng)緩沖區(qū)的數(shù)據(jù)達(dá)到80M開始向外溢寫到硬盤

溢寫的時(shí)候還有20M的空間可以被使用效率并不會(huì)被減緩 而且將數(shù)據(jù)循環(huán)寫到硬盤,不用擔(dān)心OOM問題

分區(qū)Partation

根據(jù)Key直接計(jì)算出對(duì)應(yīng)的Reduce
分區(qū)的數(shù)量和Reduce的數(shù)量是相等的
hash(key) % partation = num
默認(rèn)分區(qū)的算法是Hash然后取余
Object的hashCode()---equals()
如果兩個(gè)對(duì)象equals,那么兩個(gè)對(duì)象的hashcode一定相等
如果兩個(gè)對(duì)象的hashcode相等,但是對(duì)象不一定equlas

排序Sort

對(duì)要溢寫的數(shù)據(jù)進(jìn)行排序(QuickSort)
按照先Partation后Key的順序排序-->相同分區(qū)在一起,相同Key的在一起
我們將來溢寫出的小文件也都是有序的

溢寫Spill

將內(nèi)存中的數(shù)據(jù)循環(huán)寫到硬盤,不用擔(dān)心OOM問題
每次會(huì)產(chǎn)生一個(gè)80M的文件
如果本次Map產(chǎn)生的數(shù)據(jù)較多,可能會(huì)溢寫多個(gè)文件

合并Merge

因?yàn)橐鐚憰?huì)產(chǎn)生很多有序(分區(qū) key)的小文件,而且小文件的數(shù)目不確定
后面向reduce傳遞數(shù)據(jù)帶來很大的問題
所以將小文件合并成一個(gè)大文件,將來拉取的數(shù)據(jù)直接從大文件拉取即可
合并小文件的時(shí)候同樣進(jìn)行排序(歸并排序),最終產(chǎn)生一個(gè)有序的大文件

組合器combiner

集群的帶寬限制了mapreduce作業(yè)的數(shù)量,因此應(yīng)該盡量避免map和reduce任務(wù)之間的數(shù)據(jù)傳 輸。hadoop允許用戶對(duì)map的輸出數(shù)據(jù)進(jìn)行處理,用戶可自定義combiner函數(shù)(如同map函數(shù)和 reduce函數(shù)一般),其邏輯一般和reduce函數(shù)一樣,combiner的輸入是map的輸出,combiner 的輸出作為reduce的輸入,很多情況下可以直接將reduce函數(shù)作為conbiner函數(shù)來使用
(job.setCombinerClass(FlowCountReducer.class);)。
combiner屬于優(yōu)化方案,所以無(wú)法確定combiner函數(shù)會(huì)調(diào)用多少次,可以在環(huán)形緩存區(qū)溢出文件 時(shí)調(diào)用combiner函數(shù),也可以在溢出的小文件合并成大文件時(shí)調(diào)用combiner。但要保證不管調(diào)用 幾次combiner函數(shù)都不會(huì)影響最終的結(jié)果,所以不是所有處理邏輯都可以使用combiner組件,有 些邏輯如果在使用了combiner函數(shù)后會(huì)改變最后rerduce的輸出結(jié)果(如求幾個(gè)數(shù)的平均值,就不 能先用combiner求一次各個(gè)map輸出結(jié)果的平均值,再求這些平均值的平均值,這將導(dǎo)致結(jié)果錯(cuò) 誤)。
combiner的意義就是對(duì)每一個(gè)maptask的輸出進(jìn)行局部匯總,以減小網(wǎng)絡(luò)傳輸量。
原先傳給reduce的數(shù)據(jù)是 a1 a1 a1 a1 a1
第一次combiner組合之后變?yōu)閍{1,1,1,1,..}
第二次combiner后傳給reduce的數(shù)據(jù)變?yōu)閍{4,2,3,5...}

拉取Fetch

我們需要將Map的臨時(shí)結(jié)果拉取到Reduce節(jié)點(diǎn)
原則:
相同的Key必須拉取到同一個(gè)Reduce節(jié)點(diǎn)
但是一個(gè)Reduce節(jié)點(diǎn)可以有多個(gè)Key
未排序前拉取數(shù)據(jù)的時(shí)候必須對(duì)Map產(chǎn)生的最終的合并文件做全序遍歷
而且每一個(gè)reduce都要做一個(gè)全序遍歷
如果map產(chǎn)生的大文件是有序的,每一個(gè)reduce只需要從文件中讀取自己所需的即可

合并Merge

因?yàn)閞educe拉取的時(shí)候,會(huì)從多個(gè)map拉取數(shù)據(jù)
那么每個(gè)map都會(huì)產(chǎn)生一個(gè)小文件,這些小文件(文件與文件之間無(wú)序,文件內(nèi)部有序) 為了方便計(jì)算(沒必要讀取N個(gè)小文件),需要合并文件
歸并算法合并成2個(gè)
相同的key都在一起

歸并Reduce

將文件中的數(shù)據(jù)讀取到內(nèi)存中
一次性將相同的key全部讀取到內(nèi)存中
直接將相同的key得到結(jié)果-->最終結(jié)果

寫出Output

每個(gè)reduce將自己計(jì)算的最終結(jié)果都會(huì)存放到HDFS上文章來源地址http://www.zghlxwxcb.cn/news/detail-515242.html

到了這里,關(guān)于MapReduce分布式計(jì)算(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • MapReduce概述及工作流程

    MapReduce概述及工作流程

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

    2023年04月08日
    瀏覽(23)
  • Hadoop三大框架之MapReduce工作流程

    Hadoop三大框架之MapReduce工作流程

    MapReduce的思想核心是“分而治之”,適用于大量復(fù)雜的任務(wù)處理場(chǎng)景(大規(guī)模數(shù)據(jù)處理場(chǎng)景)。 Map負(fù)責(zé)“分”,把復(fù)雜的任務(wù)分解為若干個(gè)“簡(jiǎn)單的任務(wù)”來并行處理??梢赃M(jìn)行拆分的前提是這些小任務(wù)可以并行計(jì)算,彼此間幾乎沒有依賴關(guān)系。 Reduce負(fù)責(zé)“合”,即對(duì)map階

    2024年02月02日
    瀏覽(21)
  • Hadoop3教程(十一):MapReduce的詳細(xì)工作流程

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

    本小節(jié)將展示一下整個(gè)MapReduce的全工作流程。 首先是Map階段: 首先,我們有一個(gè)待處理文本文件的集合; 客戶端開始切片規(guī)劃; 客戶端提交各種信息(如切片規(guī)劃文件、代碼文件及其他配置數(shù)據(jù))到y(tǒng)arn; yarn接收信息,計(jì)算所需的MapTask數(shù)量(按照切片數(shù)); MapTask啟動(dòng),讀

    2024年02月07日
    瀏覽(22)
  • mapreduce 的工作原理以及 hdfs 上傳文件的流程

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

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

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

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

    2024年02月07日
    瀏覽(20)
  • 分布式處理框架 MapReduce

    分布式處理框架 MapReduce

    3.2.1 什么是MapReduce 源于Google的MapReduce論文(2004年12月) Hadoop的MapReduce是Google論文的開源實(shí)現(xiàn) MapReduce優(yōu)點(diǎn): 海量數(shù)據(jù)離線處理易開發(fā) MapReduce缺點(diǎn): 實(shí)時(shí)流式計(jì)算 3.2.2 MapReduce編程模型 MapReduce分而治之的思想 數(shù)錢實(shí)例:一堆鈔票,各種面值分別是多少 單點(diǎn)策略 一個(gè)人數(shù)所有的鈔票

    2024年02月11日
    瀏覽(19)
  • 大數(shù)據(jù)中的分布式文件系統(tǒng)MapReduce的選擇題

    一. 單選題(共9題,49.5分) (單選題)下列傳統(tǒng)并行計(jì)算框架,說法錯(cuò)誤的是哪一項(xiàng)? A. 刀片服務(wù)器、高速網(wǎng)、SAN,價(jià)格貴,擴(kuò)展性差上 B. 共享式(共享內(nèi)存/共享存儲(chǔ)),容錯(cuò)性好 C. 編程難度高 D. 實(shí)時(shí)、細(xì)粒度計(jì)算、計(jì)算密集型 正確答案: B:共享式(共享內(nèi)存/共享存儲(chǔ)),容錯(cuò)性好; 5.5分

    2024年02月04日
    瀏覽(18)
  • IBM Spectrum LSF Explorer 為要求苛刻的分布式和任務(wù)關(guān)鍵型高性能技術(shù)計(jì)算環(huán)境提供強(qiáng)大的工作負(fù)載管理

    IBM Spectrum LSF Explorer 為要求苛刻的分布式和任務(wù)關(guān)鍵型高性能技術(shù)計(jì)算環(huán)境提供強(qiáng)大的工作負(fù)載管理

    適用于 IBM Spectrum LSF 集群的強(qiáng)大、輕量級(jí)報(bào)告解決方案 ● ??????? 允許不同的業(yè)務(wù)和技術(shù)用戶使用單一解決方案快速創(chuàng)建和查看報(bào)表和儀表板 ● ????? 利用可擴(kuò)展的庫(kù)提供預(yù)構(gòu)建的報(bào)告 ● ? ? ? 自定義并生成性能、工作負(fù)載和資源使用情況的報(bào) 您的 IBM? Spectrum LSF 集

    2024年02月10日
    瀏覽(21)
  • 【終極計(jì)算平臺(tái)】上海道寧為您提供?Wolfram技術(shù),支持跨桌面、云、服務(wù)器和移動(dòng)設(shè)備的強(qiáng)大工作流程

    【終極計(jì)算平臺(tái)】上海道寧為您提供?Wolfram技術(shù),支持跨桌面、云、服務(wù)器和移動(dòng)設(shè)備的強(qiáng)大工作流程

    ? Wolfram幫助世界 加快研究、教育、技術(shù)發(fā)展和 革新的步伐 無(wú)論您所在任何領(lǐng)域 無(wú)論您需要任何應(yīng)用 Wolfram技術(shù)都是您的終極計(jì)算平臺(tái) Mathematica 具有 涵蓋所有技術(shù)計(jì)算領(lǐng)域的 將近 6,000 個(gè)內(nèi)置函數(shù)—— 所有這些都經(jīng)過精心制作 使其完美地 整合在Mathematica系統(tǒng)中 ? ? Wolfram

    2024年02月07日
    瀏覽(25)
  • 【Python】PySpark 數(shù)據(jù)計(jì)算 ③ ( RDD#reduceByKey 函數(shù)概念 | RDD#reduceByKey 方法工作流程 | RDD#reduceByKey 語(yǔ)法 | 代碼示例 )

    【Python】PySpark 數(shù)據(jù)計(jì)算 ③ ( RDD#reduceByKey 函數(shù)概念 | RDD#reduceByKey 方法工作流程 | RDD#reduceByKey 語(yǔ)法 | 代碼示例 )

    RDD#reduceByKey 方法 是 PySpark 中 提供的計(jì)算方法 , 首先 , 對(duì) 鍵值對(duì) KV 類型 RDD 對(duì)象 數(shù)據(jù) 中 相同 鍵 key 對(duì)應(yīng)的 值 value 進(jìn)行分組 , 然后 , 按照 開發(fā)者 提供的 算子 ( 邏輯 / 函數(shù) ) 進(jìn)行 聚合操作 ; 上面提到的 鍵值對(duì) KV 型 的數(shù)據(jù) , 指的是 二元元組 , 也就是 RDD 對(duì)象中存儲(chǔ)的數(shù)據(jù)是

    2024年02月14日
    瀏覽(26)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包