日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

大數(shù)據(jù):分享MapReduce經(jīng)驗雜談十則

 好程序員IT 2019-07-12

關(guān)于MapReduce的相關(guān)知識點,因為學識淺薄,可能會有遺漏的的地方,歡迎各位補充!

  下面是我個人認為非常值得注意的幾處知識點,希望能為大家的學習提供便利。



1. HDFS上的文件以行讀取,其中key是行中首字母的起始位置,value是該行的文本內(nèi)容,一行為一對KV鍵值對。

2. 通過FileInputFormat將文件切分成split塊,F(xiàn)ileInputFormat只會劃分比block大的部分。切割完畢后通過TextInputFormat對split塊中的每行記錄解析為K1V1鍵值對。

3. 一個split塊對應一個mapper task任務,map接收K1V1鍵值對后執(zhí)行map方法,后輸出新的K2V2鍵值對。

4. K2V2鍵值對添加到環(huán)形緩沖區(qū)中,當數(shù)據(jù)量達到80%(默認數(shù)據(jù),可以使用參數(shù)mapreduce.map.sort.spill.percent修改)之后,這80%環(huán)形區(qū)會觸發(fā)溢出操作,然后被封鎖,mappertask會向剩余部分繼續(xù)寫入數(shù)據(jù)。同時會對寫完的數(shù)據(jù)執(zhí)行partitioner(分區(qū))操作,然后對不同分區(qū)中的數(shù)據(jù)進行排序分組(sort)操作,最后對分組后的數(shù)據(jù)歸約(combiner,通過Key進行歸并,減少reduce的負擔)。


5. 每發(fā)生一次溢出操作就會在磁盤中生成換一個磁盤文件,當磁盤文件寫入完畢后,環(huán)形緩沖區(qū)中的封鎖區(qū)會清空數(shù)據(jù),繼續(xù)接收數(shù)據(jù)寫入。

6.mapper task的數(shù)據(jù)全部寫出完畢后,會將多個磁盤文件及內(nèi)存中多余的數(shù)據(jù)寫出到一個本地磁盤文件中。

7.此時會通知APPMaster完成map task,當完成數(shù)量達到5%時,就啟動reduce task任務。

8. reduce生成fetcher線程組(默認5個)將不同分區(qū)的的數(shù)據(jù)copy到不同的reduce節(jié)點上。(一個mapper上的分區(qū)可能會被發(fā)送到多個reduce,同樣一個reduce也會接收來自不同的mapper的分區(qū))

9.fetcher線程組將數(shù)據(jù)寫入內(nèi)存的過程中,內(nèi)存滿75%時,也會發(fā)生溢出操作,觸發(fā)sort和merge操作,最后生成一個磁盤文件(merge操作一般是從內(nèi)存到磁盤,最后再從磁盤到磁盤)

10. 最后磁盤文件的數(shù)據(jù)會被分組group來提供給reduce方法處理。根據(jù) FileOutputFormat寫入目標文件里。

  綜上,為MapReuce的細節(jié)部分,這部分操作大家比較了解,但是馬虎之下容易實現(xiàn)操作性的錯誤,簡要記錄十點,望大家多多留意,大數(shù)據(jù)時代,我們無法安然避世,就業(yè)的壓力擺在面前,只有金甲加身,付出汗水才能獲得高薪,最后送大家一句話,不忘初心,方得始終。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多