1. 程式人生 > >MapReduce 優化(一)資源相關引數

MapReduce 優化(一)資源相關引數

資源相關引數

以下引數是在自己的 MapReduce 應用程式中配置就可以生效

  • mapreduce.map.memory.mb: 一個 Map Task 可使用的記憶體上限(單位:MB),預設為 1024。如果 Map Task 實際使用的資源量超過該值,則會被強制殺死。
  • mapreduce.reduce.memory.mb: 一個 Reduce Task 可使用的資源上限(單位:MB),預設為 1024。如果 Reduce Task 實際使用的資源量超過該值,則會被強制殺死。
  • mapreduce.map.cpu.vcores: 每個 Maptask 可用的最多 cpu core 數目, 預設值: 1
  • mapreduce.reduce.cpu.vcores: 每個 Reducetask 可用最多 cpu core 數目預設值: 1
  • mapreduce.map.java.opts: Map Task 的 JVM 引數,你可以在此配置預設的 java heap size 等引數, 例如:“-Xmx1024m -verbose:gc -Xloggc:/tmp/@[email protected]
    (@[email protected]會被 Hadoop 框架自動換為相應的 taskid), 預設值: “”
  • mapreduce.reduce.java.opts: Reduce Task 的 JVM 引數,你可以在此配置預設的 java heap size 等引數, 例如:“-Xmx1024m -verbose:gc -Xloggc:/tmp/@
    [email protected]
    ”, 預設值: “”

應該在 yarn 啟動之前就配置在伺服器的配置檔案中才能生效

  • yarn.scheduler.minimum-allocation-mb RM 中每個容器請求的最小配置,以 MB 為單位,預設 1024。
  • yarn.scheduler.maximum-allocation-mb RM 中每個容器請求的最大分配,以 MB 為單位,預設 8192。
  • yarn.scheduler.minimum-allocation-vcores 1
  • yarn.scheduler.maximum-allocation-vcores 32
  • yarn.nodemanager.resource.memory-mb 表示該節點上YARN可使用的實體記憶體總量,預設是 8192(MB),注意,如果你的節點記憶體資源不夠 8GB,則需要調減小這個值,而 YARN不會智慧的探測節點的實體記憶體總量。

shuffle 效能優化的關鍵引數,應在 yarn 啟動之前就配置好

  • mapreduce.task.io.sort.mb 100 shuffle 的環形緩衝區大小,預設 100m
  • mapreduce.map.sort.spill.percent 0.8 環形緩衝區溢位的閾值,預設 80%

喜歡就點贊評論+關注吧

這裡寫圖片描述

感謝閱讀,希望能幫助到大家,謝謝大家的支援!