mapreduce 跑的慢的原因
mapreduce效率的瓶頸主要有兩點:
mapreduce優化方法
mapreduce優化方法主要從六個方面考慮:資料輸入、map階段、reduce階段、io傳輸、資料傾斜問題和常用的調優引數:
map階段:
reduce階段:
io傳輸:使用sequencefile二進位制檔案。
資料傾斜:
減少傾斜的方法:
常用調優引數:
(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
(2)應該在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
(3)shuffle效能優化的關鍵引數,應在yarn啟動之前就配置好(mapred-default.xml)
配置引數
引數說明
mapreduce.task.io.sort.mb
shuffle的環形緩衝區大小,預設100m
mapreduce.map.sort.spill.percent
環形緩衝區溢位的閾值,預設80%
配置引數
引數說明
mapreduce.map.maxattempts
每個map task最大重試次數,一旦重試引數超過該值,則認為map task執行失敗,預設值:4
mapreduce.reduce.maxattempts
每個reduce task最大重試次數,一旦重試引數超過該值,則認為map task執行失敗,預設值:4
mapreduce.task.timeout
hdfs小檔案優化方法
Hadoop 企業優化
mapreduce優化方法主要從六個方面考慮 資料輸入 map階段 reduce階段 io傳輸 資料傾斜問題和常用的調優引數。2.6.1 資源相關引數 以下引數是在使用者自己的mr應用程式中配置就可以生效 mapred default.xml 配置引數 引數說明 mapreduce.map.memo...
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...