Hadoop监控分析工具Dr.Elephan

公司基础架构这边想提取慢作业和获悉资源浪费的情况,所以装个dr elephant看看。LinkIn开源的系统,可以对基于yarn的mr和spark作业进行性能分析和调优建议。


DRE大部分基于java开发,spark监控部分使用scala开发,使用play堆栈式框架。这是一个类似Python里面Django的框架,基于java?scala?没太细了解,直接下来就能用,需要以上。


prerequest list:

Java

PlayFramework+activator

Nodejs+npm

scala+sbt


编译服务器是设立在美国硅谷的某云主机,之前为了bigtop已经装好了java,maven,ant,scala,sbt等编译工具,所以下载activator解压放到/usr/local并加入PATH即可。


然后从 github clone一份dr-elephant下来,打开,修改hadoop和spark版本为当前使用版本,:wq保存退出,运行进行编译,经过短暂的等待之后,因为美国服务器,下依赖快。会有个dist文件夹,里面会打包一个dr-elephant-,拷出来解压缩就可以用了。


DRE本身需要mysql 以上支持,或者mariadb最新的稳定版本亦可。这里会有一个问题,就是在DRE/conf/evolutions/default/里面的这三行:

create index yarn_app_result_i4 on yarn_app_result (flow_exec_id);
create index yarn_app_result_i5 on yarn_app_result (job_def_id);
create index yarn_app_result_i6 on yarn_app_result (flow_def_id);

由于在某些数据库情况下,索引长度会超过数据库本身的限制,所以,需要修改索引长度来避免无法启动的情况发生。

create index yarn_app_result_i4 on yarn_app_result (flow_exec_id(150));
create index yarn_app_result_i5 on yarn_app_result (job_def_id(150));
create index yarn_app_result_i6 on yarn_app_result (flow_def_id(150));

然后就应该没啥问题了。


到数据库里创建一个叫drelephant的数据库,并给出相关访问权限用户


接下来是需要配置DRE:

打开app-conf/

# Play application server port
# 启动dre后play框架监听的web端口
port=8080
# Database configuration
# 数据库主机,用户名密码库名
db_url=localhost
db_name=drelephant
db_user="root"
db_password=

其他默认即可,不需更改


然后是

<configuration>
  <property>
    <name></name>
    <value>3</value>
    <description>Number of threads to analyze the completed jobs</description>
  </property>
  <property>
    <name></name>
    <value>60000</value>
    <description>Interval between fetches in milliseconds</description>
  </property>
  <property>
    <name></name>
    <value>60000</value>
    <description>Interval between retries in milliseconds</description>
  </property>
  <property>
    <name></name>
    <value>true</value>
    <description>If this property is "false", search will only make exact matches</description>
  </property>
</configuration>

修改,默认是3,建议修改到10,3的话从jobhistoryserver读取的速度太慢,高于10的话又读取的太快,会对jobhistoryserver造成很大压力。下面两个一个是读取的时间周期,一个是重试读取的间隔时间周期。


然后到bin下执行启动。And then, show smile to the yellow elephant。


装完看了一下这个东西,其实本身原理并不复杂,就是读取各种jmx,metrics,日志信息,自己写一个也不是没有可能。功能主要是把作业信息里的内容汇总放到一屏里面显示,省的在JHS的页面里一个一个点了。




That's it, so easy


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值