Dr-elephant安装说明文档

Dr-elephant安装说明文档

1. 前言

“大象医生”是LinkedIn推出的一款Hadoop和Spark性能调节工具,它能够自动收集Hadoop平台所有的度量标准,并对收集的数据进行分析,并将分析结果以一种简单且易于理解的形式展示出来。这款工具将更好的帮助用户理解、分析并提高他们的工作效率。其中主要核心的东西是它定义了一系列的启发式算法(Heuristics),这些算法提供了对Hadoop/Spark任务进行性能分析的功能,这些启发式算法都是基于一定的Hadoop/Spark任务调优规则而设计的,而且这些启发式算法被设计成插件式的、可配置的。用户可以自定义这个规则或者配置新的参数来适应自己公司的开发环境。

2. 安装步骤

Linkedln为了让更多的用户使用这款产品时能更贴切的适用于自己公司的开发环境,他们只提供源码,用户必须自己根据Hadoop版本跟Spark版本编译源码生成安装包。

2.1 下载源码,准备编译环境
$> git clone https://github.com/linkedin/dr-elephant.git
$> cd dr-elephant*

因为这款产品是用play框架搭建的,使用了scala跟java语言,所以需要准备play的环境。下载地址:https://downloads.typesafe.com/typesafe-activator/1.3.12/typesafe-activator-1.3.12.zip

$> wget https://downloads.typesafe.com/typesafe-activator/1.3.12/typesafe-activator-1.3.12.zip
$> unzip typesafe-activator-1.3.12.zip 
#添加环境变量
$> export PLAY_HOME=/opt/soft/activator-dist-1.3.12
$> export PATH=${JAVA_HOME}/bin:${PLAY_HOME}/bin:$PATH
2.2 修改配置文件,编译源码
$> cd dr-elephant
$> vim compile.conf
#将Hadoop版本跟Spark版本改为跟生产一致
hadoop_version=2.6.0
spark_version=1.6.0
$> ./compile.sh(开始编译)
2.3 编译完成会在dist目录下面生成安装包。将安装包copy到要部署的服务器上。(最好选择跟jobhistoty一台的服务器,免得后面出现拒绝连接的错误。)
$> cd dist
$> scp dr-elephant-2.0.6.zip root@172.28.3.151:/opt/soft
$> cd /opt/soft
$> unzip dr-elephant-2.0.6.zip 
$> cd dr-elephant-2.0.6
2.4 配置app-conf/elephant.conf,conf/evolutions/default/1.sql等文件
elephant.conf(配置数据库信息,这里要求只能是mysql的,且版本必须在5.5以上,建议安装mariadb 10.0,相关文档https://www.jianshu.com/p/61e9cbd1b675)
# Database configuration
db_url=master01
db_name=drelephant
db_user=root
db_password=root
1.sql(这里要修改几个字段的索引长度。(因为暂时的mysql还不支持很长字符的索引))
create index yarn_app_result_i4 on yarn_app_result (flow_exec_id(100));
create index yarn_app_result_i5 on yarn_app_result (job_def_id(100));
create index yarn_app_result_i6 on yarn_app_result (flow_def_id(100));
#这里还需要配置一下Hadoop跟spark的环境
$> vim /etc/profile
export HADOOP_HOME=/opt/cloudera/parcels/CDH/lib/hadoop
export HADOOP_CONF_DIR=/opt/cloudera/parcels/CDH/lib/hadoop/etc/hadoop
export SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark
export SPARK_CONF_DIR=/opt/cloudera/parcels/CDH/lib/spark/conf
(如果在这里配置后,程序启动报错还是找不到配置文件,就将这几个配置加到程序的启动脚本bin/start.sh)。
2.5 启动服务,查看日志
$> bin/start.sh
#这里值得注意的是程序启动后会产生3个日志文件,一个dr.log(程序启动过程中的日志),一个logs/application.log(程序启动过程中的结果),最后一个最重要的是程序启动后的各种运行日志,这个日志的路径比较奇怪,在跟dr-elephant-2.0.6同级的目录下会产生一个logs/elephant/dr_elephant.log(日志会每天生成一个),这里面的内容才是验证程序具体的问题的地方。
2.6 登录页面,查看任务状态

http://172.28.3.151:8083/(这里我修改了web的端口,配置在app-conf/elephant.conf中)

dr——1.png

主页显示的是今天最紧集群跑的任务。

dr_2.png

search页面可以查看历史任务的执行情况。

具体的使用方法单独出一个使用文档,下面说一下安装过程中的坑。

3. 编译过程的错误整理

3.1 sbt模块报错
sbt.ResolveException: unresolved dependency: commons-codec#commons-codec;1.8: org.apache#apache;13!apache.pom(pom.original) origin location must be absolute: file:/Users/rvesse/.m2/repository/org/apache/apache/13/apache-13.pom

处理方式: 删除~/.ivy2整个目录,重编译即可。

3.2 前端框架node安装报错。

首先该项目需要编译web模块故需要安装node环境(https://www.jianshu.com/p/bef810c33721),另外安装完之后,可能出现bower install 安装失败,这个可以跳过。

node_1.png

4. 使用过程中的问题整理

4.1 索引过长
Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]”, “Database 'default' is in an inconsistent state!

解决方式:出现这个错误就是dr-elephant在建索引时,索引长度太大造成的。按照2.4步骤配置就不会出现这类问题。

4.2 Tez模块报错

[图片上传中...(tez1.png-5e31d9-1535539755179-0)]

这个是因为最新版的dr-elephant引入了tez计算模型,到那时我们生产测试集群都没有使用,导致连接拒绝。

解决方式:修改 app-conf/FetcherConf.xml文件,注释掉tez fetcher相关的配置

 <!--
    <fetcher>
        <applicationtype>tez</applicationtype>
        <classname>com.linkedin.drelephant.tez.fetchers.TezFetcher</classname>
     </fetcher>
   -->
4.3 能获取mapreduce任务并分析,但是spark任务fetch不了。原因是dr-elephant采用的是分析spark history中任务日志的压缩格式,而spark history 默认是不对日志进行压缩的,所以需要修改。
spark1.png

解决方式:修改spark history配置文件,让它支持压缩。在CM界面,spark-->配置-->Gateway-->高级-->spark-conf/spark-defaults.conf 在这个代码框中加入:spark.eventLog.compress=true。然后重启spark相关组件,让设置生效。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,519评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,842评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,544评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,742评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,646评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,027评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,513评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,169评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,324评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,268评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,299评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,996评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,591评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,667评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,911评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,288评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,871评论 2 341

推荐阅读更多精彩内容