(1)以下参数是在用户自己的 mr 应用程序中配置就可以生效(mapred-default.xml)。 ①mapreduce.map.memory.mb 一个 Map Task 可使用的资源上限(单位:MB),默认为 1024。如果 Map Task实际使用的资源量超过该值,则会被强制杀死。 ②mapreduce.reduce.memory.mb 一个 Reduce Task 可使用的资源上限(单位:MB),默认为 1024。如果Reduce Task实际使用的资源量超过该值,则会被强制杀死。 ③mapreduce.map.cpu.vcores 每个 Map task 可使用的最多 cpu core数目,默认值: 1 ④mapreduce.reduce.cpu.vcores 每个 Reduce task 可使用的最多 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 1024 给应用程序 container 分配的最小内存 ②yarn.scheduler.maximum-allocation-mb 8192 给应用程序 container 分配的最大内存 ③yarn.scheduler.minimum-allocation-vcores 1 每个 container 申请的最小 CPU 核 数 ④yarn.scheduler.maximum-allocation-vcores 32 每个 container 申请的最大 CPU 核 数 ⑤yarn.nodemanager.resource.memory-mb 8192 给 containers 分配的最大物理内存
(3)shuffle 性能优化的关键参数,应在 yarn 启动之前就配置好(mapred-default.xml)。 ①mapreduce.task.io.sort.mb 100 shuffle 的环形缓冲区大小,默认100m ②mapreduce.map.sort.spill.percent 0.8 环形缓冲区溢出的阈值,默认80%
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。