hadoop分时计算平台支持,提高平台资源利用率

hadoop分时计算支持。

 

问题背景:

 

分布式计算平台接入的分析任务涉及的数据量非常庞大,数据分析需求又往往需要一天或一月完整数据,这就导致分布式计算平台接入的任务都集中在晚上凌晨开始执行(因为这个时间段,数据刚刚准备好),直接的影响就是平台的支撑能力,因为白天大部分机器空闲,晚上又忙的要死。

 

解决方案:

 

将用户白天上传的数据分时段进行map计算,中间结果存储HDFS,到晚上的时候只需要进行reduce汇总操作。

 

我们的想法:

 

1.业务用户自行进行分时计算,中间结果进行保留,最终reduce操作(需要业务进行优化,增加了平台使用门槛)

2.平台优化,用户仅仅只需要完成原来的mapreudce程序(用户需要完成的工作和不分段计算完全一样,用户满意度高)

平台优化的实现思路:

 

如下是缺省的mapreduce执行过程:

 

  

 

优化后数据处理流程如下:

 

  

 

优化后的问题:

 

通用reduce程序将按part-00000-01H,part-00000-02H...... part-00001-01H,part-00001-02H,等按照partion组织文件名安排数据。

 

通用的map程序虽然只需要从part-00000-01H,part-00000-02H等文件中读出key,value;但是其产生的中间结果,还是很大的IO瓶颈,这样的优化效果仅仅减少了分散在每小时的map任务的数据处理逻辑代码;

 

 

 

进一步优化:

 

  

 

通用reduce程序将按part-00000-01H,part-00000-02H...... part-00001-01H,part-00001-02H,等按照partion组织文件名安排数据;也就是说part-00000为前缀的数据文件本身就是需要安排在一台机器进行reduce操作的。我们只需要从同一个前缀的多个文件中依次读出相同key的数据,整合在一起直接调用用户reduce方法。 直接省去了从map结果到reduce归并中间庞大的网络数据传输环节,可以大大提高数据处理性能以及资源利用率。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值