温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢
1.文档编写目的
当我们提交Hive SQL语句到YARN后,有时如果我们想监控某个SQL的执行情况,需要查看具体SQL语句,如果这个SQL语句比较长,无论是通过YARN的8088界面还是YARN的命令都无法看全这个SQL语句。
YARN的8088界面如下:
查看作业详情也无法看到完整SQL语句
yarn application -list同样无法看全SQL语句,如下:
本文主要介绍三种方式来获取Hive正在执行或者已结束的的MapReduce作业的SQL语句,一种是通过MapReduce API获取执行作业的xml配置文件,另一种是通过Cloudera Manager界面直接查看,第三种是通过Cloudera Manager的API来获取。
- 测试环境
1.操作系统RedHat7.3
2.CM和CDH版本为5.13.1
3.集群已启用Kerberos
2.通过YARN执行作业的xml配置文件获取
1.使用fayson用户登录hue执行SQL查询
2.通过SQL的ApplicationID获取到作业的配置信息
代码语言:txt复制curl -H "Accept: application/json" -X
GET http://ip-172-31-16-68.ap-southeast-1.compute.internal:8088/proxy/application_1519613953021_0029/ws/v1/mapreduce/jobs/job_1519613953021_0029/conf > a.xml
(可左右滑动)
3.通过hive.query.string属性过滤查看a.xml文件
通过获取接口获取运行中Hive作业可以查看到Hive的SQL语句,该信息对应到HDFS的/user/$USER/.staging/$JOBID/job.xml文件中。
4.如果作业执行完成将接口改为JobHistory的API接口执行
代码语言:txt复制curl -H "Accept: application/json" -X
GET http://ip-172-31-16-68.ap-southeast-1.compute.internal:19888/ws/v1/history/mapreduce/jobs/job_1519613953021_0029/conf > b.xml
(可左右滑动)
通过JobHistory的API接口获取Hive历史作业执行的完整SQL语句,该信息对应到HDFS的/user/history/done/2018/02/26/000000/job_1519613953021_0029_conf.xml文件中
3.通过Cloudera Manager来获取
1.进入Yarn的“应用程序”页面
2.在“搜索”中选择“Hive应用程序”
过滤筛选Hive应用程序
3.选择某个Hive作业,点击箭头可以展开查看完整的SQL,并察看查询的基本统计信息
4.通过Cloudera Manager的API接口获取
1.在命令行执行如下命令获取作业详细信息
代码语言:txt复制[root@ip-172-31-16-68 ~]# curl -u admin:admin "http://ip-172-31-16-68.ap-southeast-1.compute.internal:7180/api/v16/clusters/luster/services/yarn/yarnApplications"
(可左右滑动)
通过查看hive_query_string属性查看到我们运行的完整的SQL语句。
提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操