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

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

這篇具有很好參考價(jià)值的文章主要介紹了Hadoop3教程(三十四):(生產(chǎn)調(diào)優(yōu)篇)MapReduce生產(chǎn)經(jīng)驗(yàn)匯總。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

(164)MR跑得慢的原因

MR程序執(zhí)行效率的瓶頸,或者說當(dāng)你覺得你的MR程序跑的比較慢的時(shí)候,可以從以下兩點(diǎn)來分析:

  • 計(jì)算機(jī)性能

節(jié)點(diǎn)的CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等,這種屬于硬件上的檢查;

  • IO操作上的檢查
    • 是否發(fā)生了數(shù)據(jù)傾斜?即單一reduce處理了絕大部分?jǐn)?shù)據(jù)
    • Map運(yùn)行時(shí)間過長,導(dǎo)致Reduce一直在等待;
    • 小文件過多。

(165)MR常用調(diào)優(yōu)參數(shù)

Map階段

Map階段:

Hadoop3教程(三十四):(生產(chǎn)調(diào)優(yōu)篇)MapReduce生產(chǎn)經(jīng)驗(yàn)匯總,大數(shù)據(jù)技術(shù),mapreduce,大數(shù)據(jù),hadoop

1)自定義分區(qū),減少數(shù)據(jù)傾斜。即自定義分區(qū)類,繼承Partitioner接口,重寫getPartition();

2)減少環(huán)形緩沖區(qū)溢寫的次數(shù)

  • mapreduce.task.io.sort.mb:shuffle的環(huán)形緩沖區(qū)大小,默認(rèn)是100M,可以提高至200M;
  • mapreduce.map.sort.spill.percent:環(huán)形緩沖區(qū)的溢出閾值,默認(rèn)是80%,可以提高至90%。即寫到90%的時(shí)候才溢出。

這樣做的目的是,減少環(huán)形緩沖區(qū)溢寫后形成的文件的個(gè)數(shù),減少后面步驟里分區(qū)合并的壓力。

3)增加每次Merge合并次數(shù)

  • mapreduce.task.io.sort.factor:分區(qū)歸并時(shí),每次歸并的文件數(shù)量。默認(rèn)是10,可以提高到20(如果你的內(nèi)存足夠支撐的話,否則只能調(diào)小了)

4)在不影響業(yè)務(wù)結(jié)果的前提下,可以開啟Combiner:

  • job.setCombinerClass(xxxReducer.class);

5)為了減少磁盤IO,對(duì)于Map的輸出文件,可以采用snappy或者LZO壓縮。

6)提高M(jìn)apTask的內(nèi)存上限

  • mapreduce.map.memory.mb:默認(rèn)內(nèi)存上限是1024MB。通常來講,1G內(nèi)存用來處理128M數(shù)據(jù)是綽綽有余的,可以根據(jù)128M數(shù)據(jù)對(duì)應(yīng)1G內(nèi)存的原則,對(duì)應(yīng)提高內(nèi)存。

7)調(diào)整MapTask的堆內(nèi)存大小

  • mapreduce.map.java.opts:跟上面的內(nèi)存參數(shù)保持一致就可以??刂苆ava用的內(nèi)存

8)增加MapTask的CPU核數(shù)

  • mapreduce.map.cpu.vcores:默認(rèn)核數(shù)是1,對(duì)于計(jì)算密集型任務(wù),可以增加CPU核數(shù);

9)異常重試次數(shù)

  • mapreduce.map.maxattempts:每個(gè)MapTask的最大重試次數(shù),一旦重試次數(shù)超過該值,則認(rèn)為MapTask運(yùn)行失敗,默認(rèn)值是4。可以根據(jù)實(shí)際情況做加減。

Reduce階段

Reduce階段:

Hadoop3教程(三十四):(生產(chǎn)調(diào)優(yōu)篇)MapReduce生產(chǎn)經(jīng)驗(yàn)匯總,大數(shù)據(jù)技術(shù),mapreduce,大數(shù)據(jù),hadoop

1)調(diào)整每個(gè)Reduce一次性從多少個(gè)MapTask拉取數(shù)據(jù)。

  • mapreduce.reduce.shuffle.parallelecopies:默認(rèn)是5,即每個(gè)Reduce一次最多拉5個(gè)MapTask里的數(shù)據(jù),如果內(nèi)存足夠支撐,完全可以調(diào)成10;

2)調(diào)整所拉取數(shù)據(jù),在內(nèi)存緩沖的占比

  • mapreduce.reduce.shuffle.input.buffer.percent:控制內(nèi)存buffer大小占ReduceTask可用內(nèi)存的比例。默認(rèn)是0.7,可以提高到0.8。畢竟在內(nèi)存中緩存的數(shù)據(jù)越多,整體計(jì)算速度就越快。

3)控制歸并排序時(shí),可以使用的內(nèi)存比例

  • mapreduce.reduce.shuffle.merge.percent:簡單的說,就是歸并排序時(shí),可以使用的內(nèi)存占Reduce總可用內(nèi)存的比例,超過這個(gè)比例,就只能溢出到磁盤了。這個(gè)比例默認(rèn)是0.66,最高可以提高到0.75。

4)調(diào)整ReduceTask的可用內(nèi)存上限

  • mapreduce.reduce.memory.mb:默認(rèn)可用內(nèi)存上限為1024MB。同樣的,128M數(shù)據(jù)對(duì)應(yīng)1G內(nèi)存原則。適當(dāng)提升內(nèi)存到4-6G。

5)調(diào)整ReduceTask的堆內(nèi)存

  • mapreduce.reduce.java.opts

6)調(diào)整ReduceTask的CPU核數(shù)

  • mapreduce.reduce.cpu.vcores:默認(rèn)核數(shù)是1,可以提高到2-4個(gè)

7)最大重試次數(shù)

  • mapreduce.reduce.maxattempts:ReduceTask的最大重試次數(shù),一旦重試次數(shù)超過該值,則認(rèn)為運(yùn)行失敗。默認(rèn)是4。

8)當(dāng)MapTask的完成比例達(dá)到多少時(shí),才會(huì)為ReduceTask申請(qǐng)資源

  • mapreduce.job.reduce.slowstart.completedmaps:默認(rèn)是0.05,即有5%的MapTask完成任務(wù)后就可以為ReduceTask申請(qǐng)資源。

9)Task的超時(shí)時(shí)間

  • mapreduce.task.timeout:控制task的超時(shí)時(shí)間,默認(rèn)是600000毫秒,即10min。如果一個(gè)Task,在10min內(nèi),沒有數(shù)據(jù)進(jìn)入,也沒有數(shù)據(jù)輸出,則直接退出該任務(wù)。如果你的程序?qū)γ織l輸出數(shù)據(jù)的處理時(shí)間很長,可適當(dāng)調(diào)大這個(gè)參數(shù)。

10)如果可以不用Reduce,那就盡量不用。

(166)MR數(shù)據(jù)傾斜問題

直觀來看,就是在大部分任務(wù)都已經(jīng)完成了的情況下,還有少數(shù)任務(wù)仍在運(yùn)行,這時(shí)候大概率就是發(fā)生了數(shù)據(jù)傾斜,分給那少數(shù)任務(wù)的數(shù)據(jù)太多了,導(dǎo)致它們一直沒有處理完。

當(dāng)發(fā)生數(shù)據(jù)傾斜后,我們可以從哪些角度考慮優(yōu)化呢?

  • 首先是檢查是否是由于空值過多(key)造成的數(shù)據(jù)傾斜;

生產(chǎn)環(huán)境下,可以選擇過濾掉空值;如果一定要保留空值的話,可以自定義分區(qū),將空值加隨機(jī)數(shù)打散分布。文章來源地址http://www.zghlxwxcb.cn/news/detail-721792.html

  • 能在Map階段提前處理的,就在Map階段提前處理。比如說Map階段的Combiner、MapJoin等;
  • 設(shè)置多個(gè)reduce個(gè)數(shù);

參考文獻(xiàn)

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

到了這里,關(guān)于Hadoop3教程(三十四):(生產(chǎn)調(diào)優(yōu)篇)MapReduce生產(chǎn)經(jīng)驗(yàn)匯總的文章就介紹完了。如果您還想了解更多內(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)文章

  • Hadoop3教程(十四):MapReduce中的排序

    排序是MR中最重要的操作之一,也是面試中可能被問到的重點(diǎn)。 MapTask和ReduceTask中都會(huì)對(duì)數(shù)據(jù)按照KEY來排序,主要是為了效率,排完序之后,相同key值的數(shù)據(jù)會(huì)被放在一起,更方便下一步(如Reducer())的匯總處理。 默認(rèn)排序是按照 字典順序 (字母由小到大,或者是數(shù)字由小

    2024年02月07日
    瀏覽(27)
  • 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日
    瀏覽(21)
  • Hadoop3教程(十九):MapReduce之ETL清洗案例

    ETL,即 Extract-Transform-Load 的縮寫,用來描述數(shù)據(jù)從源端,經(jīng)過抽?。‥xtract)、轉(zhuǎn)換(transform),最后加載(load)到目標(biāo)端的處理過程。 ETL主要應(yīng)用于數(shù)據(jù)倉庫,但不只是應(yīng)用于數(shù)據(jù)倉庫,畢竟這個(gè)更像是一類思想。 在運(yùn)行核心的MR程序之前,往往要對(duì)數(shù)據(jù)進(jìn)行清理,清除掉

    2024年02月06日
    瀏覽(18)
  • Hadoop3教程(十七):MapReduce之ReduceJoin案例分析

    現(xiàn)在有兩個(gè)文件: orders.txt,存放的是訂單ID、產(chǎn)品ID、產(chǎn)品數(shù)量 pd.txt,這是一個(gè)產(chǎn)品碼表,存放的是產(chǎn)品ID、產(chǎn)品中文名; 現(xiàn)在是想通過join,來實(shí)現(xiàn)這么一個(gè)預(yù)期輸出,即訂單ID、產(chǎn)品中文名、產(chǎn)品數(shù)量。 以上是本次案例需求。 簡單思考一下思路。我們需要將關(guān)聯(lián)條件作為

    2024年02月07日
    瀏覽(28)
  • Hadoop3教程(二十四):Yarn的常用命令與參數(shù)配置實(shí)例

    Hadoop3教程(二十四):Yarn的常用命令與參數(shù)配置實(shí)例

    本章我是僅做了解,所以很多地方并沒有深入去探究,用處估計(jì)不大,可酌情參考。 列出所有Application : yarn application -list 根據(jù)Application狀態(tài)過濾出指定Application ,如過濾出已完成的Application: yarn application -list -appStates FINISHED Application的狀態(tài)有:ALL、NEW、NEW_SAVING、SUBMITTED、

    2024年02月08日
    瀏覽(75)
  • Hadoop3 - MapReduce COVID-19 案例實(shí)踐

    Hadoop3 - MapReduce COVID-19 案例實(shí)踐

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

    2024年02月08日
    瀏覽(18)
  • 【hadoop3.x】一 搭建集群調(diào)優(yōu)

    【hadoop3.x】一 搭建集群調(diào)優(yōu)

    https://blog.csdn.net/fen_dou_shao_nian/article/details/120945221 2.1 模板虛擬機(jī)環(huán)境準(zhǔn)備 0)安裝模板虛擬機(jī),IP 地址 192.168.10.100、主機(jī)名稱 hadoop100、內(nèi)存 4G、硬盤 50G 1)hadoop100 虛擬機(jī)配置要求如下(本文 Linux 系統(tǒng)全部以 CentOS-7.5-x86-1804 為例) (1)使用 yum 安裝需要虛擬機(jī)可以正常上網(wǎng),

    2024年02月07日
    瀏覽(25)
  • Hadoop MapReduce 調(diào)優(yōu)參數(shù)

    前言: 下列參數(shù)基于 hadoop v3.1.3 版本,共三臺(tái)服務(wù)器,配置都為 4 核, 4G 內(nèi)存。 MapReduce 調(diào)優(yōu)參數(shù)詳解 這個(gè)參數(shù)定義了在 Reduce 階段同時(shí)進(jìn)行的拷貝操作的數(shù)量,用于從 Map 任務(wù)獲取數(shù)據(jù),增加此值可以加速 Shuffle 階段的執(zhí)行。 默認(rèn)值: 5 建議配置: 10 定義了在 Reduce 階段輸

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

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

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

    2024年02月08日
    瀏覽(45)
  • 大數(shù)據(jù)技術(shù)之Hadoop(生產(chǎn)調(diào)優(yōu)手冊(cè))

    大數(shù)據(jù)技術(shù)之Hadoop(生產(chǎn)調(diào)優(yōu)手冊(cè)) 1)NameNode內(nèi)存計(jì)算 每個(gè)文件塊大概占用150byte,一臺(tái)服務(wù)器128G內(nèi)存為例,能存儲(chǔ)多少文件塊呢? 2)Hadoop2.x系列,配置NameNode內(nèi)存 NameNode內(nèi)存默認(rèn)2000m,如果服務(wù)器內(nèi)存4G,NameNode內(nèi)存可以配置3g。在hadoop-env.sh文件中配置如下。 HADOOP_NAMENODE

    2024年02月09日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包