DrElephant编译安装配置

Dr.Elephant是一个用于Hadoop和Spark任务性能监控和调优的工具,通过启发式算法分析任务并提供优化建议。它支持多种框架,具有插件式设计和良好的扩展性,能与Azkaban等调度器集成,并提供REST API。Dr.Elephant通过分析任务元数据,生成诊断报告,并按严重性级别标记性能问题,帮助开发者优化任务流程。
摘要由CSDN通过智能技术生成

Dr.ElePhant编译安装与配置

一、Dr.Elephant介绍

1.1 概念背景


Dr.Elephant被定位成一个对Hadoop和Spark任务进行性能监控和调优的工具,它能够自动收集Hadoop平台所有的度量标准,并对收集的数据进行分析,并将分析结果以一种简单且易于理解的形式展示出来。Dr.Elephant的设计目的是通过它对任务的分析结果指导Hadoop/Spark开发者对其任务进行便捷的优化,从而提高开发者的效率以及 Hadoop集群的使用效率。

在Dr.Elephant中定义了一系列的启发式算法(Heuristics), 这些算法提供了对Hadoop/Spark任务进行性能分析的功能,这些启发式算法都是基于一定的Hadoop/Spark任务调优规则而设计的,而且这些启发式算法被设计成插件式的、可配置的,我们可以很方便的在Dr.Elephant中添加自定义的启发式算法。通过对任务进行分析,启发式算法会给我们一些优化建议,基于此,我们可以对任务进行调优,从而使任务的运行更加高效。

 

1.2 为什么要使用Dr.Elephant

针对Hadoop平台优化的工具有很多,有开源的也有收费的工具。但是,大部分工具的用途是简化Hadoop集群的部署和管理,很少有工具能帮助Hadoop开发者优化他们的任务流程。虽然有一些可用的工具是面向这个领域的,但是,他们要不就是不够受用户欢迎,要不就是在扩展性上做的不好,不能很好的支持快速发展的Hadoop框架。Dr.Elephant能够支持Hadoop平台的各种框架,而且对于新框架也有很好的扩展性。比如最近比较火的Spark框架,Dr.Elephant能很好的支持它,这是Dr.Elephant具有高扩展性的体现,对于任何新的Hadoop框架,我们可以配置和使用自定义的启发式算法,从而对新框架的性能进行分析。Dr.Elephant的强大功能能帮助Hadoop/Spark使用者理解他们任务流的内部机制,从而帮助他们轻松的优化这些任务。

1.3 核心功能点

  • 启发式算法是基于规则的,且是插件式、可配置的,具有良好扩展性,能分析各种各样的框架
  • 创造性的和Azkaban调度器集成,并且支持任意一种Hadoop任务调度器,例如Oozie
  • 能自动统计所有历史任务的性能
  • 能实现Job级别的任务流性能比较
  • 对Hadoop和Spark任务能进行性能诊断
  • 具有良好的扩展性,能支持新种类的任务、应用和调度器
  • 提供REST API,用户能够通过API获取所有信息

 

1.4 Dr.Elephant工作原理

Dr.Elephant定期从Hadoop平台的YARN资源管理中心获取近期所有的任务,这些任务既包含成功的任务,也包含哪些失败的任务。每个任务的元数据,例如任务计数器、配置信息以及运行信息都可以从Hadoop平台的历史任务服务端获取到。一旦获取到了任务的元数据,Dr.Elephant就基于这些元数据运行启发式算法,然后会产生一份该启发式算法对该任务性能的诊断报告。根据每个任务的执行情况,这份报告会为该任务标记一个待优化的严重性级别。严重性级别一共分为五级,报告会对该任务产生一个级别的定位,并通过级别来表明该任务中存在的性能问题的严重程度。

 

1.5 Dr.Elephant的一个应用场景

在LinkedIn,Hadoop平台的开发者使用Dr.Elephant来做很多事 情。比如,监控每个任务在集群上性能,或者用来分析理解为什么某个任务执行性能较差以及怎么样去优化它们,还可以用来比较任务的多次运行情况等等。在 LinkedIn,Dr.Elephant已经成为一个标准,只有被Dr.Elephant检查合格的任务才可以放到生产环境上执行。

 

1.6 任务优化分析示例

在Dr.Elephant的UI上,包含了近期所有的任务,以及这些任务的分析数据。


一旦一个任务执行完成,Dr.Elephant就会将它的分析信息加载到UI中。用户也 可以在UI的搜索页来搜索某个任务。搜索任务时,可以通过job id、任务的执行url(当用任务调度器调度任务时,是可以获取到执行url的)、任务的发起者、任务的结束时间、任务类型来进行任务搜索,甚至可以通过 任务分析报告中的等级来进行任务搜索。


搜索页中展示的搜索结果从高层面对任务的性能进行分析,通过使用不同的颜色代表不同的严重性等级,来表示任务和启发式算法的综合情况。当UI中某个任务的颜色标记为红色时,表明这个任务的性能问题很严重,亟待优化;当任务的颜色标记为绿色时,表明这个任务的运行效率很高。


在UI中点击每个任务块,可以得到每个任务的完整诊断报告。在诊断报告中,每个启发式算法都会对该任务生成一个详细的分析。点击每个链接可以看到每个启发式算法对应的分析结果,这个结果提供了针对该任务在该启发式算法上的优化建议。


二、创建Dr.Elephant项目

2.1 获取源代码

从Github仓库中获取代码,dr-elephant。下文中的版本2.0.4是很早的版本,是在本地环境中测试验证通过的版本,github上已经找不到了,本地有保存。其他版本在编译和部署过程中都有问题。

 

2.2编译代码

Dr.Elephant项目基于Play框架开发,所以开发Dr.Elephant项目的第一步就是安装Play框架。可以在下面这个链接下载到最新版本的Play框架:https://www.playframework.com/download。安装Play框架之后,一定要将play命令添加到环境变量$PATH中。我们这里下载的是play-2.2.6

export PATH=/root/play-2.2.6/:$PATH

执行编译脚本,就可以对Dr.Elephant项目进行编译。

编译正确执行完过后会在/dist目录下生成一个zip包,该zip文件就是最终输出文件,解压即可使用。

在执行编译命令时,可以选择带一个参数选项来指明编译的配置文件。在这个配置文件中,可以指定Hadoop或者Spark的版本信息。在不指

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值