5.2.4 Merge阶段的调优
操作场景
通过调整如下参数减少reduce写磁盘的次数。
操作步骤
参数名 | 描述 |
---|---|
mapreduce.reduce.merge.inmem.threshold | 允许多少个文件同时存在reduce内存里。当达到这个阈值时,reduce就会触发mergeAndSpill,将数据写到硬盘上。默认值1000 |
mapreduce.reduce.shuffle.merge.percent | 当reduce中存放map中间结果的buffer使用达到多少百分比时,会触发merge操作。默认值0.66 |
mapreduce.reduce.shuffle.input.buffer.percent | 允许map中间结果占用reduce堆大小的百分比。默认值0.70 |
mapreduce.reduce.input.buffer.percent | 当开始执行reduce函数时,允许map文件占reduce堆大小的百分比。当map文件比较小时,可以将这个值设置成1.0,这样可以避免reduce将拷贝过来的map中间结果写磁盘。默认值0 |