7.3.3mapreduce配置调优

1.1.1         配置调优

通过调节配置参数,达到较优的性能。Map配置参数

属性

类型

默认值

作用

mapreduce.Task.io.sort.mb

Int

100

Map输出结果的缓冲区大小兆为单位

mapreduce.map.sort.spill.percent

Float

80

缓冲区占用比例达到这个阈值时,就会生成溢出文件,将map输出结果写入磁盘溢出文件

mapreduce.task.io.sort.factor

Int

10

将溢出文件按照这个数量进行合并成一个文件

mapreduce.map.combine.minspills

Int

3

溢出文件数量少于这个数时,不使用combine,大于时使用combine函数

mapreduce.map.output.compress

Bool

False

是否压缩输出map结果

mapreduce.map.output.compress.codec

class

Org.apache.hadoop.io.compress.defaultCodec

Map输出的编解码器

Mapareduce.shuffle.max.thread

int

0

节点管理器的工作线程数量,用于map输出到reduce,0表示两倍处理器的线程数

给shuffle尽量提供多的内存空间,map和reduce函数中尽量少用内存。Map尽量减少写磁盘的数量来获得最佳性能,一次是最佳的情况。Mapreduce计数器记录写磁盘次数,帮助调优。

属性

类型

默认值

说明

mapreduce.reduce.shuffle.parallelcopies

int

5

复制map结果到reduce的线程数

mapreduce.reduce.shuffle.maxfetchfailures

int

10

提取map输出最大尝试次数,超出后报错

mapreduce.task.io.sort.factor

int

10

合并文件数最大值,与map共用

mapreduce.reduce.shuffle.input.buffer.percent

float

0.70

copy阶段用于保存map输出缓冲区占堆内存比例

mapreduce.reduce.shuffle.merge.percent

float

0.66

缓冲区使用率大于这个百分比时开始溢出写入磁盘

mapreduce.reduce.shuffle.inmem.threshold

int

1000

和percent一起控制溢出写入磁盘,Map输出的个数大于这值时,启动合并输出和磁盘溢出写过程,小于等于0表示没有阈值,此时只由缓冲池比例来控制

mapreduce.reduce.input.buffer.percent

float

0.0

reduce函数开始运行时,默认情况内存都用于reduce函数,也就是map输出都写入到磁盘。但是为了减少写磁盘的数据量,允许map输出保存在内存中的比例。内存中的map输出所占的堆内存比例不得高于这个值,

自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取:

https://www.cnblogs.com/bclshuai/p/11380657.html

原文地址:https://www.cnblogs.com/bclshuai/p/12232214.html