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/@taskid@.gc” (@taskid@会被 Hadoop 框架自动换为相应的 taskid), 默认值: “” mapreduce.reduce.java.opts: Reduce Task 的 JVM 参数,你可以在此配置默认的 java heap size 等参数, 例如:“-Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc”, 默认值: “”

应该在 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%

精细调节

主要内存参数调节

https://blog.csdn.net/z3935212/article/details/78637157 https://www.cnblogs.com/wcgstudy/p/10788193.html

Hadoop性能调优全面总结

https://blog.csdn.net/pansaky/article/details/83347357

官网

https://hadoop.apache.org/docs

声明:sma blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - Mapreduce调优小结


Carpe Diem and Do what I like