用Hitune+chukwa 进行mapreduce 程序的性能调优

本文通过两次测试,展示了在处理深圳通地铁交通数据时,如何通过调整MapReduce中的reduce任务数量来显著提高处理效率。测试表明合理配置能大幅缩短运行时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 问题背景

    深圳通地铁交通数据的处理,判断某一时间段内,任意两个不同地铁站间的流量统计,例如从地铁A站入站,从地铁B站出站的人数,在mapreduce操作里面本质上是一个分布式的join操作。

2 第一次测试

   在第一次测试中,数据集73GB,集群有3个计算节点,机器配置(16核,16GB内存),集群配置(map slot和reduce slot个数均为6,java虚拟机内存大小200m,iobuffer=128k,其他值默认)

程序设置不同的reduce个数运行3次,每次分别采用1,8,和16个reduce,三次运行时间分别为:

Reduce个数

1

8

16

程序运行时间

48分48秒

18分40秒

18分5秒

在本例中reduce的个数对程序的性能产生了很大的影响,

3 第二次测试

 本次测试采用了3个不同大小数据集,分别为20G,40G,98G,集群计算节点4个,配置与第一次基本相同,Ruduce个数为设置为24,三个数据集分别运行的时间是,2分20秒,7分4秒,14分2秒。

数据集大小

20G

40G

98G

程序运行时间

2分20秒

7分4秒

14分2秒



  三次运行过程的对比



由于不同数据集数据的计算密度大小不一,结果中各阶段所耗时间并没有表现出严格的正比关系。

4  98G数据集程序分析

           各阶段总耗时对比图



    mapattempt


map task的平均耗时11.7秒,图中红色部分所占比例极小,程序输入数据块的默认大小为64M,为加快运行速度,输入数据块的大小可以尝试为128M,甚至是512M,应该有较大的优化空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值