LinkedIn 开源 Dr. Elephant

  • Akshay Rai
  • 侠天

2016 年 4 月 17 日

话题:性能调优语言 & 开发架构运维

本文来源于全球最大的职业社交网站 LinkedIn 领英,文章版权归作者本人所有。

今天 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 作为开发流程的一部分,线上任务强制达到绿色级别。

查看英文原文https://engineering.linkedin.com/blog/2016/04/dr-elephant-open-source-self-serve-performance-tuning-hadoop-spark

性能调优语言 & 开发架构运维