实践Hadoop MapReduce 任务的性能翻倍之路

简介: eBay每天产生PB量级的CAL日志,其数据量每天都在增加。对于日益增长的数据量,Hadoop MapReduce job的优化将会大大节省计算资源。本文将分享eBay团队如何对这些Hadoop job进行优化,希望为开发者带来启发,解决Hadoop MapReduce(MR)job实践中存在的问题。
作者:李万雪, eBay软件开发工程师,2017年毕业于上海交通大学。目前负责日志在大数据平台上的分析和opentracing在ebay日志平台的实现。

原文链接

摘要
eBay的CAL(Central Application Logging)系统负责收集eBay各种应用程序的日志数据,并且通过Hadoop MapReduce job生成日志报告,应用程序开发人员与运维人员通过报告可获得以下内容:

API调用响应时间的百分位值
服务调用关系
数据库操作
eBay每天产生PB量级的CAL日志,其数据量每天都在增加。对于日益增长的数据量,Hadoop MapReduce job的优化将会大大节省计算资源。本文将分享eBay团队如何对这些Hadoop job进行优化,希望为开发者带来启发,解决Hadoop MapReduce(MR)job实践中存在的问题。

为什么要优化
CAL报告的Hadoop job现状如下:

数据集:CAL每天的日志量为PB量级,并以每年70%的速度增加,CAL收集的日志来自不同的应用程序,其日志的内容也有所不同。有些属于数据库操作密集型,有些则包含着复杂的嵌套事务,且每个应用程序日志的数据量差异大。
计算资源:CAL使用的是共享Hadoop集群。优化前,CAL Hadoop job需要使用约50%整个集群的资源才能完成。CAL报告Hadoop job在一天中,其中有9个小时只能使用19%的集群计算资源,不能在这段时间获得资源执行的job将会等待在队列中,直到这9小时结束,它才能有80%的集群计算资源可以使用。
成功率:CAL MapReduce job的成功率仅92.5%。
eBay团队如何优化
在分享我们的经验之前,我们先简单介绍Hadoop MapReduce的流程。

Hadoop MR job一般分为五个阶段,即CombineFileInputFormat, Mapper, Combiner, Partitioner, 以及Reducer。

实践Hadoop MapReduce 任务的性能翻倍之路

我们的优化工作主要从执行时间和资源使用两方面考虑。

关键词:Hadhoop MapReduce job eBay
了解更多
点击阅读更多,查看具体优化步骤及解决方案