MapReduce 调优基本思路

MapReduce 性能优化 阅读详情

mapreduce 的调优一般都是基于shuffle阶段的。下面就讲讲基本思路。

调优的基本原则就是给 shuffle 阶段尽可能大的内存。但是因为map和reduce函数的执行也需要内存,所以shuffle需要多少内存需要权衡一下,比如尽量避免在 map reduce 用 哈希表等结构对数据进行聚合操作,让 map 和 reduce 占用的内存尽可能小。

map 和 reduce 任务占用的内存是由参数 mapred.child.java.opts 设置的,这个值应该尽可能大,但是要小于节点容器所占据的内存。

在map阶段应该尽量避免多次spill数据到磁盘,map阶段的调优参数:


属性名类型默认值说明
mapreduce.task.io.sort.mbint100map 输出结果进行排序阶段用到的内存大小,单位是 M
mapreduce.map.sort.spill.percentfloat0.80map 和 reduce 阶段输出结果保存在内存缓存中,达到这一比例便开始spill 到磁盘
mapreduce.task.io.sort.factorint10当对文件进行排序时,一次可以合并的最大文件数量。
mapreduce.map.combine.minspillsint3如果设置了combiner函数,触发combine动作的最少文件数量。
mapreduce.map.out.compressboleanfalsemap 输出结构是否压缩
mapreduce.map.output.compress.codecclass nameorg.apache.hadoop.io.compress.Default
Codec
对 map 数据结果进行压缩的类
mapreduce.shuffle.max.threadsint0每个节点上开启的线程数用于将map输出结果传送到reducer。0 代表用Netty框架的默认值,默认为可用的逻辑处理器的2倍


reduce 阶段的参数

mapreduce.reduce.shuffle.parallelcopies       int       5            将map阶段的输出结果copy到reducer的并行度(线程数)
mapreduce.reduce.shuffle.maxfetchfailures   int      10           拉取map阶段输出结果的线程允许失败的最大次数
mapreduce.task.io.sort.factor                            int        10          一次可以合并的最大文件数量。
mapreduce.reduce.shuffle.input.buffer.percent   float    0.70   在shuffle过程的copy phase ,map 端的输出结果占用的堆内存比例。
mapreduce.reduce.shuffle.merge.percent      float     0.66     
mapreduce.reduce.merge.inmem.threshold   int        1000



MapReduce shuffle过程剖析及调优 MapReduce简介在Hadoop MapReduce中,框架会确保reduce收到的输入数据是根据key排序过的。数据从Mapper输出到Reducer接收,是一个很复杂的过程,框架处理了所有问题,并提供了很多配置项及扩展点。一个MapReduce的大致数据流如下图:更详细的MapReduce介绍参考Hadoop MapReduce原理与实例。Mapper的 阅读详情

相关推荐

关于mapreduce调优方法

开发中关于mapreduce中参数的调优策略 使用hadoop进行大数据运算,当数据量及其大时,那么对MapReduce性能的调优重要性不言而喻。尤其是Shuffle过程中的参数配置对作业的总执行时间影响特别大 1.关于map端的调优属性 属性名称 类型 默认值 说明 mapreduce.task.io.sort.mb int 100...

zengjingshan的博客 2536

关于MapReduce的优化方法大全

关于MapReduce的优化方法大全

qq1253507478的博客 2868

MapReduce太慢了,记一次对它的调优建议。

代码调优 代码调优,主要是mapper和reducer中,针对多次创建的对象,进行代码提出操作。这个和一般的java程序的代码调优一样。 mapper调优 mapper调优主要就是就一个目标:减少输出量。我们可以通过增加combine阶段以及对输出进行压缩设置进行mapper调优。 combine介绍: 实现自定义combine要求继承reducer...

乔治大哥的博客 3346

关于MapReduce的调优

一、关于硬件方面的调优 :        主要使用的硬件 : CPU+memory           如果当前进程是进行存储的 , 对CPU和内存要求并不是很高。如果当前进程是进行计算的,那么对CPU和memory的要求都是很高的            硬件的主要配置有 :memory   当CPU不够的话 : 程序执行运算会慢一点,当内存不够的 : 会导致heap溢出,GC。因为在内存不够的时...

1464

Hive 调优

摘要:hive调优

分享~ 3433

MapReduce常用的调优参数

MapReduce常用的调优参数 资源相关参数 (1)以下参数是在用户自己的MR应用程序中配置就可以生效(mapred-default.xml) 配置参数 参数说明 mapreduce.map.memory.mb 一个MapTask可使用的资源上限(单位:MB),默认为1024。如果MapTask实际使用的资源量超过该值,则会被强制杀死。 mapreduce.reduce.memory.mb 一个ReduceTask可使用的资源上限(单位:MB),默认为1024。如果ReduceTask

williamccc的博客 1122

大数据MapReduce的性能调优方法总结

也就是说,buffer和reduce是没有直接关联的,中间多一个写磁盘->读磁盘的过程,既然有这个弊端,那么就可以通过参数来配置,使得buffer中的一部分数据可以直接输送到reduce,从而减少IO开销。在执行MapReduce任务前,将小文件进行合并,大量的小文件会产生大量的map任务,增大map任务装载的次数,而任务的装载比较耗时,从而导致MapReduce运行速度较慢。我们在上面提到的属性参数,都是位于mapred-default.xml文件中,这些属性参数的调优方式如表2所示。

zy1992As的博客 768

MapReduce性能调优:从理论到实践的经验总结

某电商日志分析场景中,因用户行为数据存在幂律分布特性,单个Reduce任务处理时间超出其他任务4.2倍,导致整体作业延迟。在某次存储计算分离改造中,当对象存储吞吐量提升40%但成本增加15%时,ROI达到267%,验证方案可行性。合并小文件输入,将单个Map任务处理的文件数从1个提升至12个,HDFS寻址开销降低78%。将数据量压缩62%。从1增加到2时,CPU利用率提升但I/O等待时间增加15%,需通过。从0.8降低至0.6时,内存到磁盘的溢写次数减少32%,但会增加。共存时,压缩耗时可能导致任务超时。

sc35262的博客 598

从MapReduce的Shuffle原理 进行 生产参数调优

文章目录1.mapreduce的过程上图2.map 切分输入文件3.环形缓冲区3.1 原理3.2 生产调优3.2.1 mapreduce.task.io.sort.mb(default:100m)3.2.2 mapreduce.map.sort.spill.percent(default:0.80)4.数据在spill到磁盘之前会做partition,sort操作4.1 原理4.2 生产调优5. 溢写到磁盘(spill to disk)5.1 原理5.2 生产调优参数5.2.1 mapreduce.task

lihuazaizheli的博客 1836

深入解析mSATA与mini-PCIE接口的硬件设计要点

本文深入解析mSATA与mini-PCIE接口的硬件设计要点,涵盖信号定义、电源设计、高速信号处理及PCB布局布线等关键内容。通过实战案例和调试技巧,帮助工程师规避常见设计陷阱,提升电路设计效率,特别适合工业控制和嵌入式系统开发场景。

weixin_28741413的博客 315

手把手教你用LaTeX完成Elsevier期刊投稿:附完整文件上传清单与注意事项

本文提供了一份详尽的Elsevier期刊LaTeX投稿实战指南。文章系统拆解了从稿件准备、文件上传到最终提交的全流程,重点解析了Manuscript、Figure(s)等关键文件的上传逻辑与注意事项,并附有PDF生成前后的详细检查清单,旨在帮助研究者高效、规范地完成投稿,规避常见错误。

weixin_29300931的博客 487

Hadoop 调优之 MapReduce 调优篇

前言 本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见1000个问题搞定大数据技术体系 姊妹篇 Hadoop 调优之 Linux 操作系统调优篇 Hadoop 调优之 HDFS 调优篇 Hadoop 调优之 YARN 调优篇 Hive 如何进行企业级调优? 正文 使用 Hadoop 进行大数据运算,当数据量极大时,那么对 MapReduce 性能的调优重要性不言而喻,尤其是 Shuffle 过程中

Shockang的博客 3万+

用FPGA驱动WS2812B点阵,手把手教你实现动态文字显示(附完整Verilog代码)

本文详细介绍了如何使用FPGA驱动WS2812B点阵实现动态文字显示,包括硬件连接、Verilog代码实现和动态效果设计。通过精确的时序控制和数据处理,读者可以掌握FPGA与WS2812B的交互技术,并实现炫酷的显示效果。附完整Verilog代码,适合硬件爱好者和工程师参考实践。

weixin_30482383的博客 669

MapReduce调优总结

一、调优的目的 充分的利用机器的性能,更快的完成mr程序的计算任务。甚至是在有限的机器条件下,能够支持运行足够多的mr程序。 二、调优的总体概述 从mr程序的内部运行机制,我们可以了解到一个mr程序由mapper和reducer两个阶段组成, 其中mapper阶段包括: (1)数据的读取、 (2)map处理以及写出操作(排序和合并/sort&merge), 而reducer阶段包含: (1...

婲落ヽ红颜谇的博客 502

kaggle——信用卡欺诈检测项目实战

笔记第一步:了解题目,确定任务第二步:场景分析第三步:数据预处理看是否有缺失值查看样本类别分布数据不均衡解决办法数据值标准化/归一化第四步:特征工程1)查看特征分布情况,把不同类别下特征分布相差不大的特征删除掉2)特征缩放第五步:模型训练处理不平衡样本交叉验证求取最好的模型参数第六步:模型评估使用下采样数据训练与测试使用下采样数据训练与测试(不同的阈值对结果的影响)使用下采样数据训练,原始数据进行测试原始数据进行K折交叉验证使用原始数据进行训练和测试查看ROC曲线逻辑回归阈值选择过采样总结 第一步:了解题目

weixin_45942265的博客 1万+

K型热电偶负电压采集难题?3种运放电路设计方案对比(含Multisim仿真)

本文针对K型热电偶在低温测量中产生的负电压采集难题,详细对比了三种运放电路设计方案,包括双电源运放反相放大、单电源仪表放大器和差分放大电路,并结合Multisim仿真数据分析了各方案的性能差异。文章还提供了PCB布局和抗干扰设计的实战技巧,帮助工程师解决热电偶信号采集中的核心挑战。

postgres8guard的博客 1017

MapReduce调优

MapReduce调优(完美版) MapReduce调优 一、调优的目的 充分的利用机器的性能,更快的完成mr程序的计算任务。甚至是在有限的机器条件下,能够支持运行足够多的mr程序。 二、调优的总体概述 从mr程序的内部运行机制,我们可以了解到一个mr程序由mapper和reducer两个阶段组成, 其中mapper阶段包括: (1)数据的读取、 (2)map处...

小鲤鱼丶汤真好喝 229

从理论到实践:TRL去嵌入校准在国产矢量网络分析仪上的应用全解析

本文全面解析了TRL去嵌入校准技术在国产矢量网络分析仪上的应用实践,从核心算法到工程实现。详细介绍了TRL校准的数学原理、国产VNA的程控接口开发、校准件质量评估及测量不确定度控制策略,帮助工程师掌握高频器件测量的关键技术。

tech5的博客 1011

Hadoop MapReduce 调优参数

下列参数基于。

JIE的博客 --- moon_coder 1597

大数据工程中的数据血缘分析工具比较

数据血缘(Data Lineage)是大数据治理中的核心组成部分,它描述了数据从源头到目标的完整流动路径。系统介绍数据血缘的核心概念和技术原理比较主流开源和商业数据血缘工具的功能特点提供数据血缘分析的实践指南和选型建议本文首先介绍数据血缘的基本概念,然后深入分析其技术原理和实现方法,接着比较主流工具的特点,最后通过实际案例展示应用场景。数据血缘(Data Lineage): 描述数据从源头到目标的完整流动路径,包括所有转换和处理步骤元数据(Metadata)

大数据洞察的博客 900

【python三维深度学习】python三维点云从基础到深度学习

从三维点云基础知识到深度学习,将按照以下目录持续进行更新。更新完成的部分可以在三维点云专栏中查看。含数据与python源码。

叶子的博客 2万+

MapReduce性能调优记录

MapReduce原理 要知道怎么对MapReduce作业进行调优前提条件是需要对Map-Reduce的过程了然于胸。  Map-Reduce运行原理图:  Map Side 1.从磁盘读取数据并分片 默认每个block对应一个分片,一个map task 2.进行map处理 运行自定义的map业务过程 3.输出数据到缓冲区中 map输出的数据并不是直接写入磁盘的,而是会先存储在一个...

fengfengchen95的博客 1842

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

mapreduce调优java代码_mapreduce项目调优

一、调优的目的充分的利用机器的性能,更快的完成mr程序的计算任务。甚至是在有限的机器条件下,能够支持运行足够多的mr程序。二、调优的总体概述从mr程序的内部运行机制,我们可以了解到一个mr程序由mapper和reducer两个阶段组成,其中mapper阶段包括数据的读取、map处理以及写出操作(排序和合并/sort&merge),而reducer阶段包含mapper输出数据的获取、数据合并...

weixin_39723920的博客 214

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【MapReduce】之 调优

MapReduce的调优 MR优化之资源相关参数 mapreduce.map.memory.mb: 一个Map Task可使用的资源上限(单位:MB),默认为1024。如果Map Task实际使用的资源量超过该值,则会被强制杀死。 mapreduce.reduce.memory.mb: 一个Reduce Task可使用的资源上限(单位:MB),默认为1024。如果Reduce Task实际使用...

Aut1sm的博客 370

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MapReduce任务参数调优

MapReduce任务参数调优 本文主要记录Hadoop 2.x版本中MapReduce参数调优,不涉及Yarn的调优。 Hadoop的默认配置文件(以cdh5.0.1为例): core-default.xml hdfs-default.xml mapred-default.xml 说明: 在hadoop2中有些参数名称过时了,例如原来的mapred.reduc...

freespace 667
上一篇: MapReduce 的过程详解
下一篇: spark rdd
touch_future
博客等级 码龄10年 3粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值