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输出所占的堆内存比例不得高于这个值, |
自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取: