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

posted @   一字千金  阅读(337)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示