MapReduce 優化(一)資源相關引數
阿新 • • 發佈:2019-01-07
資源相關引數
以下引數是在自己的 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/@
應該在 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%
喜歡就點贊評論+關注吧
感謝閱讀,希望能幫助到大家,謝謝大家的支援!