Hadoop作业性能指标及参数调优实例 (二)Hadoop作业性能调优7个建议

大数据领域Hadoop的集群性能监控指标 Hadoop作为大数据处理的核心平台,其集群性能直接影响数据处理效率和系统稳定性。本文旨在系统性地介绍Hadoop集群性能监控的关键指标体系,帮助管理员和开发者全面掌握集群运行状态,及时发现和解决性能瓶颈。本文将从基础概念入手,逐步深入到指标采集、分析和应用的全过程,最后提供实战案例和工具推荐,形成完整的知识体系。NameNode:HDFS的元数据管理节点:YARN的资源调度核心组件DataNode:HDFS的数据存储节点:YARN的节点资源管理组件Block。 阅读详情

作者:Shu, Alison 

Hadoop作业性能调优的两种场景:

一、用户观察到作业性能差,主动寻求帮助。

(一)eBayEagle作业性能分析器

1. Hadoop作业性能异常指标

2. Hadoop作业性能调优7个建议

(二)其它参数调优方法

二、Hadoop集群报告异常,发现个别作业导致集群事故。

 

一、用户观察到作业性能差,主动寻求帮助。

(一)eBay Eagle作业性能分析器

对一般作业性能调优,eBay Eagle[i]的作业性能分析器已经能满足用户大部分需求。eBayEagle作业性能分析包含两个部分,第一部分是根据定量指标,捕捉性能异常的作业。在本文中,我们不考虑Hadoop集群或者节点故障造成作业性能的普遍下降,因此我们认为这些性能指标异常只与Hadoop作业有关,可以通过性能调优来改善。第二部分是调优建议。根据Hadoop作业性能异常指标判断作业是否需要调优,再综合采用第二部分的建议。第二部分也可以作为Hadoop作业开发的指引,并在后期性能测试中检查。

 

1. Hadoop作业性能异常指标

参阅《Hadoop作业性能指标及参数调优实例(一)Hadoop作业性能异常指标》

 

2. Hadoop作业性能调优的7个建议

§  压缩输出文件

压缩可以节省磁盘和网络的IO,提高作业性能。Gzip/Snappy/Lzo/Bzip2都是常用的压缩格式,根据需要选用。

四种常用压缩格式的特征[ii]:

压缩格式

split

native

压缩率

速度

Hadoop自带

linux命令

换成压缩格式后,原来的应用程序是否要修改

Gzip

否

是

很高

比较快

是

有

和文本处理一样,不需要修改

Lzo

是

是

比较高

很快

否

有

需要建索引,还需要指定输入格式

Snappy

否

是

比较高

很快

否

没有

和文本处理一样,不需要修改

Bzip2

是

否

最高

慢

是

有

和文本处理一样,不需要修改



参数调优(用lzo压缩):

mapreduce.output.fileoutputformat.compress=true

mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.LzoCodec

mapreduce.map.output.compress=true

mapreduce.map.output.compress.codec=com.hadoop.compression.lzo.LzoCodec

 

§  应对数据倾斜

如果一些Reduce比其它Reduce明显耗时更多,我们认为发生数据倾斜,整个作业会因为数据倾斜而耗时更多。

eBay Eagle对数据倾斜的定义:

(WorstReduceTime - avgReduceTime > 30 minutes)and (WorstReduceInputRecords / avgReduceInputRecords > 5)

 

有很多解决方案,例如写MapReduce作业时,合并中间数据,避免大量小文件。在工作中,我们碰到数据倾斜的咨询集中在Hive查询,参数调优如下:

-合并小文件((文件再小,Block再大,每个小文件都会占用一个Block)

hive.merge.mapfiles=true

hive.merge.size.per.task=256000000

 

-利用Map端聚合,达到Reduce负载均衡

hive.groupby.skewindata=true

hive.optimize.skewjoin=true

hive.map.aggr=true

hive.groupby.mapaggr.checkinterval = 100000

 

§  增加内存,减少GC时间

当Map或Reduce内存不够时,需要更多的GC时间,从而影响作业性能。

eBay Eagle对GC时间过长的定义:

GC_TIME_MILLIS / CPU_MILLISECONDS > 0.1

 

作业参数调优,提高Heap size:

mapreduce.map.java.opts=-Xmx4g

mapreduce.reduce.java.opts=-Xmx4g

 

在提高Heap Size参数时,注意Heap Size不得超过物理内存。

mapreduce.map.memory.mb > mapreduce.map.java.opts

mapreduce.reduce.memory.mb >mapreduce.reduce.java.opts

 

§  避开资源竞争

系统资源紧张会造成Map或Reduce进展缓慢。用户可以从Scheduler中观察不同queue的资源使用情况,避开繁忙的窗口。如果作业有多个queue可以选择,选择资源空闲的queue。

 

设置queue:

mapreduce.queue.jobname=<queue_name>

 

示例:通过ResourceMananger web URL 观察系统资源使用情况

§  增加内存,减少磁盘溢出

设置以下作业参数减少磁盘溢出:(适当大于默认值)

mapreduce.map.sort.spill.percent=1

mapreduce.task.io.sort.mb=1024

mapreduce.map.java.opts=-Xmx4096M

 

 

§  保留系统默认的最小分片大小

有些人会设置split.minsize作业参数以控制Map数量,但这种做法会削弱数据本地性,降低作业性能,建议保留系统默认设置。在默认配置下,split大小和block大小是相同的,防止一个split如果对应的多个block而且这些block大多不在本地。

保留作业参数默认值:

mapreduce.input.fileinputformat.split.minsize=0

 

§  控制Map和Reduce数量

合理的Map和Reduce数量,有利于提高作业性能。我们可以通过参数直接设置Reduce的数量,但无法直接指定Map的数量。参考computeSplitSize()方法,当输入文件指定时,Map的数量由SplitSize决定,我们可以通过修改dfs.blocksize和split.minsize来设定Split Size。上文我们建议使用保留系统默认的最小分片大小,所以我们只能通过修改dfs.blocksize参数来控制Map数量。值得注意的是我们可以有若干办法控制输入文件。

 

当Map平均输入很大,或者用时太长,通过以下办法可以增加Map数量

-事先采用Splittable的压缩格式,比如Lzo格式压缩输入文件。

-设置较小的Block Size

当Map平均输入过小,或者用时太短,通过以下办法可以减少Map数量

-事先合并输入文件,减少小文件 (小文件太多,就算Block Size再大,每个小文件都会占用一个Block)

-设置较大的Block Size

 

computeSplitSize()方法说明[i]:



*上图为引用Hadoop The Definitive Guide 3rd Edition[i], 所列属性为Hadoop 1。在Hadoop 2中,部分属性名称已更新,比如Hadoop 1中dfs.block.size在Hadoop2中更新为dfs.blocksize.

 

eBay Eagle有关Map和Reduce数量的标杆:

Map作业满足以下条件之一,认为Map数量太多:

-输入 < 5 MB且用时 < 30秒

-用时 < 10秒

Map作业满足以下条件之一,认为Map数量太少:

-输入 > 1GB

-用时 > 10分钟

 

Reduce作业满足以下条件之一,认为Reduce数量不合理:

-输入 < 256MB 且总用时(包括Shuffle) < 5分钟 且 输出 < 256MB

-输入 > 10GB 且总用时(包括Shuffle) > 30分钟

-总用时(包括Shuffle) < 60秒

-总用时(包括Shuffle) > 1小时 且 用时(不包括Shuffle) > 30分钟

-输入 < 10MB 且用时(不包括Shuffle) < 5分钟 且 输出 < 2GB

-输出 > 10GB 且用时(不包括Shuffle) > 30分钟

 

Reduce数量推荐方案:

Reduce number=Max(input / 3 G, output / 2 GB,reduceTime / 10 minute)

指定Reduce数量的作业参数:

mapreduce.job.reduces=<Reduce number>

      



 

[i] eBay Eagle是eBay自主研发的系统,用于大型Hadoop集群管理,集监控、警示和智能修复功能于一体。eBayEagle即将开源,有望成为Apache的孵化项目。

[ii] http://my.oschina.net/mkh/blog/335395

[iii] Hadoop: TheDefinitive Guide, Third Edition. Hadoop: The Definitive Guide, Third Edition,ISBN: 9781449328917
Hadoop性能调优全面总结 一、 Hadoop概述 随着企业要处理的数据量越来越大,MapReduce思想越来越受到重视。Hadoop是MapReduce的一个开源实现,由于其良好的扩展性和容错性,已得到越来越广泛的应用。 Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提... 阅读详情

相关推荐

Hadoop性能调优总结(一)

目的 随着企业要处理的数据量越来越大,Hadoop运行在越来越多的集群上,同时MapReduce由于具有高可扩展性和容错性,已经逐步广泛使用开来。因此也产生很多问题,尤其是性能方面的问题。这里从管理员角度和用户角度分别介绍Hadoop性能优化的一些体会。 本文是基于Hadoop 0.20.x(包括1x),cdh 3及以上版本做介绍。(Hadoop的版本比较杂乱,具体可以看参

chndata的专栏 2万+

大数据领域 Hadoop 的集群性能评估指标

当你管理一个Hadoop集群时,可能遇到这些困惑:“为什么凌晨的ETL任务突然变慢了?“花大价钱扩容了节点,吞吐量怎么没提升?“YARN总是报错资源不足,是配置问题还是硬件瓶颈?这些问题的答案,都藏在“集群性能评估指标”里。本文将覆盖Hadoop核心组件(HDFS存储层、YARN计算层)的关键指标,以及集群整体健康度的评估方法,帮助你从“被动救火”转向“主动优化”。用“快递站”比喻HDFS,“工厂流水线”比喻YARN,理解Hadoop集群的运行逻辑;

SuperAGI2025 1007

Hadoop性能调优学习概述

目的 随着企业要处理的数据量越来越大,Hadoop运行在越来越多的集群上,同时MapReduce由于具有高可扩展性和容错性,已经逐步广泛使用开来。因此也产生很多问题,尤其是性能方面的问题。这里从管理员角度和用户角度分别介绍Hadoop性能优化的一些体会。 本文是基于Hadoop 0.20.x(包括1x),cdh 3及以上版本做介绍。(Hadoop的版本比较杂乱,具体可以看参考部分链接介绍)

chndata的专栏 3382

Hadoop作业性能指标及参数调优实例 (一)Hadoop作业性能异常指标

eBay拥有8个Hadoop集群,7000+节点,使用eBay Eagle进行集群管理,eBay平台支持团队提供技术咨询,帮助用户有效利用大数据。基于用户咨询,我们以Hadoop作业性能为研究范畴,阐述作业性能指标,给出参数调优建议。

ebay的专栏 3903

[ hadoop ] 集群性能调优全面总结

引子 文章涵盖了hadoop框架的三个组成架构各自的优化方法,涉及存储,计算,故障排除等多个方面的具体调优内容,先后解决HDFS,MapReduce,Yarn的常见问题,最终结合小文件给出了Hadoop综合调优. 1 HDFS调优 1.1 核心参数 1.1.1 NameNode内存 Hadoop2.x系列,NN内存默认2000M,根据服务器(以4G为例)的3/4来配: hadoop-env.sh文件中配置:HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x系列,had

jason_bone_的博客 4617

Hadoop性能调优--用户角度

hadoop性能调优--用户角度

52Pig的专栏 3053

[大牛翻译系列]Hadoop(8)MapReduce 性能调优:性能测量(Measuring)

6.1测量MapReduce和环境的性能指标 性能调优的基础系统的性能指标和实验数据。依据这些指标和数据,才能找到系统的性能瓶颈。性能指标和实验数据要通过一系列的工具和过程才能得到。 这部分里,将介绍Hadoop自带的工具和性能指标。还将捎带介绍性能监控工具。 6.1.1作业统计数据抽取工具 这一章中介绍的很多技术都需要从Hadoop中抽取作业和任务的性能指标。有以下三种办法抽取...

weixin_30656145的博客 180

大数据——Hadoop集群调优

一、HDFS多目录存储 1.1 生产环境服务器磁盘情况 1.2 在hdfs-site.xml文件中配置多个目录,需要注意新挂载磁盘的访问权限问题。 HDFS中DataNode节点保存数据的路径由dfs.datanode.data.dir参数决定,其默认值为file://${hadoop.tmp.dir}/dfs/data,若服务器中有多个磁盘,必须对改参数进行修改。如服务器磁盘如上图所示,则该参数应修改为如下的值。 <property> <name&g...

Vicky_Tang 1万+

Hadoop作业性能指标及參数调优实例 (二)Hadoop作业性能调优7个建议

作者:Shu, Alison  Hadoop作业性能调优的两种场景: 一、用户观察到作业性能差,主动寻求帮助。 (一)eBayEagle作业性能分析器 1. Hadoop作业性能异常指标 2. Hadoop作业性能调优7个建议 (二)其他參数调优方法 二、Hadoop集群报告异常,发现个别作业导致集群事故。   一、用户观察到作业性能差,主动寻求帮助。 (一)eBay ...

weixin_34387284的博客 170

hadoop 性能调优 重要参数设置技巧

这里主要针对Mapreduce的性能调优。 这一两个月在做mapreduce的性能调优,有些心得,还是要记下来的,以郷后人~ 这里主要涉及的参数包括: HDFS: dfs.block.size Mapredure: io.sort.mb io.sort.spill.percent mapred.local.dir mapred.map.tasks & mapred

fp196391196391的专栏 1万+

14、大数据性能指标与Hadoop系统性能调优

本文深入探讨了大数据环境下的性能指标评估和Hadoop系统的性能调优方法。首先介绍了数据管道中不同阶段(如流式数据摄取、流式数据分析、批量计算、即席查询)的性能衡量方式,并提出了综合性能指标的概念和权重分配策略。随后,详细分析了Hadoop系统的性能调优,包括基础设施、网络、存储、操作系统和Hadoop配置的优化措施,并通过TPCx-HS基准测试验证了调优效果。最后总结了调优的关键点及实际应用中的注意事项。

ttt77的博客 147

Hadoop作业性能指标及参数调优实例 (三)Hadoop作业性能参数调优方法

eBay拥有8个Hadoop集群,7000+节点,使用eBay Eagle进行集群管理,eBay平台支持团队提供技术咨询,帮助用户有效利用大数据。基于用户咨询,我们以Hadoop作业性能为研究范畴,阐述作业性能指标,给出参数调优建议。

ebay的专栏 3569

大数据分析平台Hadoop的关键技术

本文着重研究了基于Hadoop平台大数据的分析技术的发展和功能模块的应用,对关键技术进行比较分析,将整体结构框架进行改良,使数据分析平台在不受场景限制的前提下进行使用。

hadoop的调优参数,性能优化

~~ Hadoop性能调优,性能优化 ~~ 核心答案讲解: Hadoop参数调优 一、 hdfs-site.xml 配置文件 1、 dfs.blocksize 参数:hadoop文件块大小 描述:新文件的默认块大小,以字节为单位,默认 134217728 字节。 可以使用以下后缀(大小写不敏感):k(kilo)、m(mega)、g(giga)、t(tera)、p(peta)、e(exa)...

ZHANG:X 2281

oracle性能指标

oracle一些性能指标,供大家参考学习

手把手教你用HiNet实现图像隐藏:可逆神经网络实战指南(附代码)

本文提供了一份基于HiNet框架实现图像隐藏的实战指南。通过详细解析可逆神经网络原理,手把手指导环境搭建、模型构建、损失函数设计及训练流程,并附有完整代码。该方法利用单个可逆网络统一隐藏与恢复过程,结合小波变换提升隐蔽性,为信息隐藏应用提供了高效解决方案。

rgv234567的博客 433

Hadoop参数调优全攻略,让你的集群性能翻倍!

的DataNode节点保存数据的路径由dfs.datanode.data.dir参数决定,其默认值为file://${hadoop.tmp.dir}/dfs/data,若服务器有多个磁盘,必须对该参数进行修改。在进行参数调优时,需要综合考虑集群的硬件配置、作业的特点和性能指标,通过实验和监控来找到最佳的配置。表示该节点上YARN可使用的物理内存总量,默认是8192(MB),注意,如果你的节点内存资源不够8GB,则需要调减小这个值,而YARN不会智能的探测节点的物理内存总量。查看当前均衡任务的执行情况。

humsuen的博客 2294

数电发票“乐企直连”服务平台建设方案

数字化电子发票“乐企直连”服务平台建设方案

m0_73174802的博客 4853

hadoop性能调优

目 录 12 性能调优 12.1 配置原则 12.2 Manager 12.2.1 提升Manager配置服务参数的效率 12.2.2 根据集群节点数优化Manager配置 12.3 HBase 12.3.1 提升BulkLoad效率 12.3.2 提升连续put场景性能 12.3.3 Put和Scan性能综合调优 12.3.4 提升实时写数据效率 12.3.5 提升实时读数...

qq_31835117的博客 2703

Android 13 Hotseat定制化修改——001 hotseat布局方向

一.背景由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher...

Java_fenxiang的博客 1103

YOLOv11涨点改进| Kimi团队 2026 |独家创新首发、注意力改进篇|爆火AttnRes残差自注意力模块,含多种创新改进,借助残差思想,缓解细节信息在传播过程中被稀释,促进YOLOv11涨点

🔥本文提出AttnRes残差自注意力模块,通过深度维度的注意力加权机制替代传统固定残差累加方式,使YOLOv11网络能自适应选择更有价值的历史层特征进行聚合。该方法缓解了浅层细节信息在深层传播过程中被稀释的问题,有效融合浅层纹理与深层语义特征,提升小目标、密集目标和复杂场景的检测能力。AttnRes还改善了深层网络的梯度分布与训练稳定性,增强模型收敛质量和泛化能力。实验表明,该模块能以较小计算开销显著提升YOLOv11的特征表达能力、检测精度和整体鲁棒性。文中详细介绍了模块结构、实现原理、优势特点

Ai缝合怪、助力小伙伴高效发论文 125
上一篇: Hadoop作业性能指标及参数调优实例 (一)Hadoop作业性能异常指标
下一篇: Hadoop作业性能指标及参数调优实例 (三)Hadoop作业性能参数调优方法
ebay
博客等级 码龄24年 109粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值