LinkedIn开源Dr. Elephant

今天LinkedIn宣布开源Dr. Elephant,Dr. Elephant能够很好的帮助用户理解、分析和优化Hadoop和Spark的工作流。LinkedIn在去年第八届Hadoop Summit上第一次在社区呈现。

动机

Hadoop是一个分布式数据存储和大数据处理框架,体量大、组件复杂,因而每个组件的性能优化就显得异常重要。在优化底层硬件资源,网络架构,OS和其它堆栈的同时,也需要对集群上运行的任务进行优化。

什么是Dr. Elephant?

Dr. Elephant是一个Hadoop 和Spark的性能监控和调优工具。Dr. Elephant能自动化收集所有指标,进行数据分析,并以简单易用的方式进行呈现。Dr. Elephant的目标是提高开发人员的开发效率和增加集群任务调试的高效性。Dr. Elephant支持对Hadoop和Spark任务进行可插拔式、配置化以及基于规则的启发式job性能分析,并且根据分析结果给出合适的建议来指导如何调优使任务更有效率。

为什么选择Dr. Elephant?

其它开源或者商用Hadoop优化工具都是收集系统资源指标和监控集群资源信息,关注点仅在于简化Hadoop集群的发布和管理,而很少有工具是来帮助Hadoop优化任务流。这些工具不支持Hadoop集群的规模化和Hadoop框架的增长,而Dr. Elephant支持Hadoop生态的各种框架,并且很容易的扩展到新的框架,已经支持Spark。Dr. Elephant让用户更清晰的掌握Hadoop和Spark原理,并帮助其轻松的优化任务。

Dr. Elephant如何工作?

Dr. Elephant从YARN Resource Manager周期性获取所有最近运行成功和失败的应用列表,然后从Job History Server中攫取每个应用的元数据,包括job counters、任务配置和任务数据。有了元数据后,Dr. Elephant进行启发式分析,并生成每个任务的诊断报告,从而进行相应的整体优化。Dr. Elephant将会标记出五个等级问题严重性,指出潜在的性能问题。

  图1 Dr. Elephant问题等级

  图2 Dr. Elephant的面板

通过Dr. Elephant的UI查看数据面板,见图2,这里显示集群的相关统计信息,包括集群上运行的任务数,需要优化的任务数,以及基于启发式分析发现的严重任务数。图中是最近24小时的Dr. Elephant分析的所有最近的任务。

  图3 Dr. Elephant的搜索页

Dr. Elephant提供一个搜索功能,帮助用户通过任务ID/应用ID,执行ID,任务类型,任务严重程度和任务完成时间等来搜索任务。

  图4 Dr. Elephant任务页面

当你点击指定的搜索结果,会显示完整的任务信息,并能查看相互引用的任务流。

  图5 Dr. Elephant的工作流历史

  图6 Dr. Elephant的任务历史

Dr. Elephant的任务历史和工作流历史可以帮用户比较前后执行的区别。Dr. Elephant通过启发式计算出每个任务执行的性能得分并作图。这个图表可以帮助用户很直观的分析哪个性能好。

家庭医生

Dr. Elephant在LinkedIn非常受欢迎,大家钟爱其简洁性。Dr. Elephant通过简单的诊断可以解决百分之八十的问题。Dr. Elephant提供任务级别的建议帮助用户去理解和优化Hadoop工作流。

Dr. Elephant已经完全和Hadoop生态整合。在LinkedIn,开发人员使用Dr. Elephant作为开发流程的一部分,线上任务强制达到绿色级别。

本文转自d1net(转载)

时间: 2024-12-30 22:25:44

LinkedIn开源Dr. Elephant的相关文章

LinkedIn开源Dr.elephant,Hadoop爽了

在开源项目方面,LinkedIn一直在为全世界的数据工作者做出贡献.近日,为了提高开发人员的Hadoop和spark工作效率,LinkedIn再次做出贡献,开源了其一款工具"大象医生(Dr.elephant)". Hadoop这只象需要帮助 Hadoop的标志是一只黄色的小象,这也是LinkedIn这款工具名字的源来所在."大象医生"是LinkedIn推出的一款Hadoop和Spark性能调节工具.根据LinkedIn软件工程师Akshay Rai在其微博中的介绍,

Dr. Elephant:Hadoop和Spark的优化“神器”

美国加州软件公司Pepperdata的应用程序分析软件建立在Dr. Elephant(Dr. Elephant 是Hadoop和Spark的性能监视和调优工具)开源项目上.主要目的是让更多的Hadoop和Spark应用程序投入生产. Pepperdata的应用程序分析器作为早期访问版本,基于去年推出的Apache开源项目Dr. Elephant.Dr. Elephant项目的贡献者包括Airbnb,Foursquare,Pepperdata等. Dr. Elephant软件通过活动日志解析,适用

Databus:LinkedIn开源低延时变化数据捕获的系统

2月26日,LinkedIn开源了其低延时变化数据捕获系统Databus,该系统可以在MySQL以及Oracle数据源上捕获数据,不过当下LinkedIn只开源了Oracle上的连接器.Databus作为LinkedIn生态系统中的一致性保障组件,是具有十分高保障的一项产品,就算在低延时的情况下仍然具有高有效性;而其最大的特点莫过于无限制lookback能力及丰富的subscription功能. 以下为LinkedIn上Databus简述译文: 何为Databus LinkedIn拥有一个针对数

LinkedIn开源实时数据处理系统Samza

近日,LinkedIn开源了一项技术--Samza,它是一个分布式流处理框架,专用于实时数据的处理,非常像Twitter的流处理系统Storm.不同的是Samza基于Hadoop,而且使用了LinkedIn自家的Kafka分布式消息系统. Storm和Samza极其相似,就像LinkedIn的Chris Riccomini在博客中阐述的那样:"[Samza]可以帮助你构建应用,处理消息队列--更新数据库.计数以及其他的聚合.转换消息等等."而这些其实都是很经典的Storm应用,只不过迁

LinkedIn 开源成功的秘密

开源就是不断的奉献自己,除非它将你的业务先毁掉.但是,有太多的人先入为主,将各种偏见灌输给你,诸如:开源有"毒",开源根本无法赚钱之类的.这个时候,你只需要默默的,转身看看那些成功的利用开源的公司即可. 互联网的巨头,即使如 LinkenIn,也是开源的"专家",让我们先过一遍 LinkedIn 的 GitHub 账户, 竟然是一家发布了 75 个开源项目的公司.而且其中有一些已经是获得巨大成功的项目了,有众多的开发者和公司参与开发和使用.是的,没错,这就是 Lin

LinkedIn 开源其分布式对象存储系统 Ambry

日前,LinkedIn在Github上基于Apache 2许可证协议开源了其分布式对象存储系统Ambry.Ambry是一个是不可变对象的存储系统,非常易于扩展,它能够存储KB到GB大小的不可变对象,并且能够实现高吞吐和低延迟,该系统支持跨数据中心的双活部署,并且存储成本低廉.它特别适于存储各种媒体内容. 据Linkedin的前工程主管Sriram Subramanian介绍,媒体内容在Web中已经无处不在,Linkedin中的每项新特性基本上都会与某种类型的媒体内容进行交互.这些媒体内容会存储在

LinkedIn 开源软件项目数量已经超过了 100 个

社交网络巨头.开源社区的活跃贡献者LinkedIn最近又开源了一系列重量级基础设施软件.到目前为止,LinkedIn在 GitHub 上开源的软件项目数量已经超过了100个. 最近宣布开源的项目有 URL-Detector.Rocket Data 和 LayoutKit 等. URL-Detector URL-Detector是一个以文本方式检测和标准化URL的Java库.为了保证用户的安全使用,所有用户提交的内容都会经过安全检测.LinkeIn的内容验证服务每秒钟都要处理几十万个URL,检查其

LinkedIn开源Cruise Control:一个Kafka集群自动化运维新利器

Kafka近年来日渐流行,LinkedIn的1800台Kafka服务器每天处理2万亿个消息.虽说Kafka运行得十分稳定,但要大规模运行Kafka,在运维方面仍然面临巨大的挑战.每天都会有broker崩溃,导致集群工作负载不均衡.SRE团队需要花费大量的时间和精力来重分配分区,以便让集群重新恢复均衡. 自动化因此变得十分重要,这也就是为什么我们要开发Cruise Control:持续监控Kafka集群,自动调整分配给服务器的资源,达到预期的性能目标.用户设定目标,Cruise Control对集

LinkedIn 开源多媒体对象存储数据库 Ambry

LinkedIn近日开源了多媒体对象存储数据库Ambry(GitHub). LinkedIn过去使用的是一种闭源技术,非常复杂,而且也难以随着用户数和数据量的增长而扩展.LinkedIn工程总监Sriram Subramanian在博客中指出: 我们开始尝试在市场中寻找更好的替代方案,包括各种分布式文件系统.存储一体机.云服务和内部部署方案都考察过,通过权衡我们的设计目标和得失后发现,我们需要自己开发一个能更好满足我们需求的方案--Ambry,如今Ambry已经在LinkedIn的生产环境中使用