如何获取Hive正在执行或者已结束的的MapReduce作业的SQL语句
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 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获取到作业的配置信息
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接口执行
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.在命令行执行如下命令获取作业详细信息
[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实操
- 如何使用Hue创建Spark1和Spark2的Oozie工作流
- 【译】深入研究 Laravel 的依赖注入容器
- 一次XSS突破的探险
- 如何使用Hue创建Spark2的Oozie工作流(补充)
- 如何基于CDSW基础镜像定制Docker
- OVSDB介绍及在OpenDaylight中的调用
- 如何在CDH集群的非元数据库节点安装MySQL5.7.12
- PySpark数据类型转换异常分析
- SQLI-LABS 更新帖(二)
- 如何重置Hue用户密码
- 如何使用R连接Hive与Impala
- Equation Group泄露工具之vBulletin无文件后门分析
- 如何使用CDSW在CDH集群通过sparklyr提交R的Spark作业
- 如何使用Beeline连接Impala
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 剑指 Offer 03. 数组中重复的数字
- 841. 钥匙和房间
- 一篇文章了解python常见内置异常报错
- 五分钟极速搭建kubernetes集群
- 没想到吧!关于Dubbo的『消费端线程池模型』官网也写错了。
- Go内存管理之代码的逃逸分析
- MySQL读锁的区别和应用场景分析
- Apache NIFI 讲解(读完立即入门)
- 了解NiFi最大线程池和处理器并发任务设置
- 深入理解 Apache NIFI Connection
- 【Go语言探险】线上奇怪日志问题的排查
- 探索 Apache NIFI 集群的高可用
- 面试被问:Spring Boot中Tomcat是如何启动的?
- Spring Boot 实现定时任务的动态增删启停等管理!
- Apache NIFI ExecuteScript组件脚本使用教程