dr-elephant是linkedin开源的大数据作业诊断优化工具,可以读取作业的日志信息,给出可视化的问题诊断和优化建议。
本文介绍如何在emr集群上安装大象医生,并提供一个优化hive参数的完整示例。大象诊断的详情文档可以看官方文档,后续本博客也会发表一些使用经验。
注意:目前大象医生还不支持spark2,社区正在开发,敬请期待。
安装大象医生
集群脚本功能介绍
参照 集群脚本功能介绍
准备脚本
下载 脚本,放在您的oss合适的目录里。
运行脚本
本文用的示例集群是EMR3.4.2版本,3节点,4核16GB的默认配置。
- 集群列表页面点击对应集群的管理按钮
- 左侧菜单单击集群脚本,进入该集群的集群脚本执行界面
- 单击右上角创建并执行,进入创建界面。
- 选择刚才的脚本,设置名字,节点请只选择master节点,ha集群选择集群详情中第一个master节点,点击确认,完成添加并执行操作。
- 集群脚本列表可以看到新创建的集群脚本,点击刷新可以更新集群脚本的状态。
- 等待集群脚本完成
- 安装完成后,可以在master节点的
/root/dr-elephant-2.0.13/logs/application.log
看到Listening for HTTP on /0.0.0.0:8098
说明启动成功,按照文档用端口动态转发功能打开UI,服务端口是8098。
本示例用
ssh -i /path/id_rsa -N -L 8158:ip:8098 root@ip
,
本地浏览器打开http://localhost:8158/
,可以看到:
运行作业并优化
运行示例程序
使用交互式工作台的的hivedemo,依次运行,直到下面的语句运行结束。
查看运行诊断
等待几分钟,可以在大象诊断的UI上看到刚才hive作业的诊断
有个reducer Memory的颜色不是绿色,点击查看,可以看到是分配的reduce内存多,而实际用的少
点击explain,可以看到解释和优化建议
优化作业
根据优化建议,我们调整一下作业内容,set mapreduce.reduce.memory.mb=600;
,新建一张表,
等待几分钟,可以看到这次诊断没有
相应提示了。