mapreduce優化方法主要從六個方面考慮:資料輸入、map階段、reduce階段、io傳輸、資料傾斜問題和常用的調優引數。
2.6.1 資源相關引數
以下引數是在使用者自己的mr應用程式中配置就可以生效[mapred-default.xml]
配置引數
引數說明
mapreduce.map.memory.mb
乙個maptask可使用的資源上限(單位:mb),預設為1024。如果maptask實際使用的資源量超過該值,則會被強制殺死
mapreduce.reduce.memory.mb
乙個reducetask可使用的資源上限(單位:mb),預設為1024。如果reducetask實際使用的資源量超過該值,則會被強制殺死
mapreduce.map.cpu.vcores
每個maptask可使用的最多cpu core數目,預設值: 1
mapreduce.reduce.cpu.vcores
每個reducetask可使用的最多cpu core數目,預設值: 1
mapreduce.reduce.shuffle.parallelcopies
每個reduce去map中取資料的並行數。預設值是5
mapreduce.reduce.shuffle.merge.percent
buffer中的資料達到多少比例開始寫入磁碟。預設值0.66
mapreduce.reduce.shuffle.input.buffer.percent
buffer大小佔reduce可用記憶體的比例。預設值0.7
mapreduce.reduce.input.buffer.percent
指定多少比例的記憶體用來存放buffer中的資料,預設值是0.0
應該在yarn啟動之前就配置在伺服器的配置檔案中才能生效[yarn-default.xml]
配置引數
引數說明
yarn.scheduler.minimum-allocation-mb
給應用程式container分配的最小記憶體,預設值:1024
yarn.scheduler.maximum-allocation-mb
給應用程式container分配的最大記憶體,預設值:8192
yarn.scheduler.minimum-allocation-vcores
每個container申請的最小cpu核數,預設值:1
yarn.scheduler.maximum-allocation-vcores
每個container申請的最大cpu核數,預設值:32
yarn.nodemanager.resource.memory-mb
給containers分配的最大物理記憶體,預設值:8192
shuffle效能優化的關鍵引數,應在yarn啟動之前就配置好[mapred-default.xml]
配置引數
引數說明
mapreduce.task.io.sort.mb
shuffle的環形緩衝區大小,預設100m
mapreduce.map.sort.spill.percent
環形緩衝區溢位的閾值,預設80%
2.6.2 容錯相關引數(mapreduce效能優化)
配置引數
引數說明
mapreduce.map.maxattempts
每個map task最大重試次數,一旦重試引數超過該值,則認為map task執行失敗,預設值:4
mapreduce.reduce.maxattempts
每個reduce task最大重試次數,一旦重試引數超過該值,則認為map task執行失敗,預設值:4
mapreduce.task.timeout
hdfs 上每個檔案都要在 namenode 上建立乙個索引,這個索引的大小約為 150byte,這樣當小檔案比較多的時候,就會產生很多的索引檔案,一方面會大量占用 namenode 的記憶體空間,另一方面就是索引檔案過大使得索引速度變慢。
小檔案的優化無非以下幾種方式:
Hadoop 六 Hadoop企業優化
mapreduce 程式效率的瓶頸在於兩點 cpu 記憶體 磁碟健康 網路 1 資料傾斜 2 map和reduce數設定不合理 3 map執行時間太長,導致reduce等待過久 4 小檔案過多 5 大量的不可分塊的超大檔案 6 spill次數過多 7 merge次數過多等。mapreduce優化方法...
hadoop的企業優化
前言 mapreduce程式的效率的瓶頸在於兩點 計算機效能 cpu 記憶體 磁碟健康 網路 i o操作 資料傾斜 map和reduce數量設定不合理 map的執行時間太長,導致reduc的等待過久 小檔案過多 大量的補課分塊的超大檔案 spill 溢寫 次數過多 merge 合併 次數過多 map...
12)Hadoop企業優化
mapreduce 跑的慢的原因 mapreduce效率的瓶頸主要有兩點 mapreduce優化方法 mapreduce優化方法主要從六個方面考慮 資料輸入 map階段 reduce階段 io傳輸 資料傾斜問題和常用的調優引數 map階段 reduce階段 io傳輸 使用sequencefile二進...