首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一步一步理解Impala query profile(一)

一步一步理解Impala query profile(一)

作者头像
九州暮云
发布2019-12-16 16:48:27
9500
发布2019-12-16 16:48:27
举报
文章被收录于专栏:九州牧云九州牧云九州牧云

很多Impala用户不知道如何阅读Impala query profile来了解一个查询背后正在执行的操作,从而在此基础上对查询进行调优以充分发挥查询的性能。因此我想写一篇简单的文章来分享我的经验,并希望它可以对希望了解更多信息的人有所帮助。

这是本系列的第1部分,我将介绍一些Impala query profile的基础知识和查看Profile时特别要注意的内容。

获取Impala query profile

首先,获取Impala query profile有两种方法,最简单的方法是在impala-shell中运行查询后执行“PROFILE”语句,如下所示:

[impala-daemon-host.com:21000] > SELECT COUNT(*) FROM sample_07;
Query: SELECT COUNT(*) FROM sample_07
Query submitted at: 2018-09-14 15:57:35 (Coordinator: https://impala-daemon-host.com:25000)
dQuery progress can be monitored at: https://impala-daemon-host.com:25000/query_plan?query_id=36433472787e1cab:29c30e7800000000
+----------+
| count(*) |
+----------+
| 823      |
+----------+
Fetched 1 row(s) in 6.68s

[impala-daemon-host.com:21000] > PROFILE; <-- Simply run "PROFILE" as a query
Query Runtime Profile:
Query (id=36433472787e1cab:29c30e7800000000):
Summary:
Session ID: 443110cc7292c92:6e3ff4d76f0c5aaf
Session Type: BEESWAX
.....

也可以在CDHWeb页面(Cloudera Manager Web UI)上点击CM > Impala > Queries,找到刚刚运行的查询,然后点击Query Details

接着向下滚动找到“Download Profile”按钮:

你也可以到执行查询的Impala Daemonimpalad节点,该节点在Impala集群中为coordinator角色)节点的Web界面来下载query profile信息:

https://{impala-daemon-url}:25000/queries

Web界面会展示出在当前Impala Daemon节点执行的SQL列表:

然后点击对应SQL后的“Details”链接转到“Profile” tab页:

获取了Profile之后,接下来我们开始剖析Profile

Profile解析

下面是Query Profile的一段文本,该段文本是Profile最上面的概要(Summary)部分:

Query (id=36433472787e1cab:29c30e7800000000):
Summary:
Session ID: 443110cc7292c92:6e3ff4d76f0c5aaf
Session Type: BEESWAX
Start Time: 2018-09-14 15:57:35.883111000
End Time: 2018-09-14 15:57:42.565042000
Query Type: QUERY
Query State: FINISHED
Query Status: OK
Impala Version: impalad version 2.11.0-cdh5.14.x RELEASE (build 50eddf4550faa6200f51e98413de785bf1bf0de1)
User: hive@VPC.CLOUDERA.COM
Connected User: hive@VPC.CLOUDERA.COM
Delegated User:
Network Address: ::ffff:172.26.26.117:58834
Default Db: default
Sql Statement: SELECT COUNT(*) FROM sample_07
Coordinator: impala-daemon-url.com:22000
Query Options (set by configuration):
Query Options (set by configuration and planner): MT_DOP=0
Plan:
----------------

我们将其分为几个部分来介绍,这里面有一些频繁用到的重要信息:

1、查询ID:

Query (id=36433472787e1cab:29c30e7800000000):

ID唯一标识在Impala中运行过的SQL,这对于从Impala Daemon日志中用ID查询相关的信息很有用,只需搜索此查询ID,就可以了解SQL运行细节和相关的错误信息。

2、Session类型:

Session Type: BEESWAX

这可以告诉我们连接来自哪里。BEESWAX意味着查询是从impala-shell客户端运行的。如果从Hue运行,类型将是HIVESERVER2,因为Hue是通过HIVESERVER2 thrift连接的。

3、查询起止时间:

Start Time: 2018-09-14 15:57:35.883111000
End Time: 2018-09-14 15:57:42.565042000

这可以告诉我们查询运行了多长时间,此时间包括会话空闲时间(session idle time)。因此,如果你看到在Hue运行一个简单的查询用了几秒钟返回结果,是由于Hue会保持会话打开直到会话关闭或用户运行另一个查询,因此此处的时间可能比正常显示的时间更长。如果通过impala-shell运行,则开始时间和结束时间应与运行时间完全匹配,因为impala-shell在查询完成后会立即关闭查询处理程序。

4、查询状态:

Query Status: OK

这表明查询是否成功完成。OK表示查询成功执行完成。如果有错误,通常会在此处显示,例如,被用户取消(cancelled by user)、会话超时(session timeout)、异常(Exceptions)等。

5、Impala版本:

Impala Version: impalad version 2.11.0-cdh5.14.x RELEASE (build 50eddf4550faa6200f51e98413de785bf1bf0de1)

该信息显示运行查询的Impala版本,如果你发现它与你安装的Impala版本不匹配,则说明未正确安装某些部分。

6、运行查询的用户信息:

User: hive@XXX.XXXXXX.COM
Connected User: hive@XXX.XXXXXX.COM
Delegated User:

该信息表示运行查询的用户。

7、查询所用的数据库:

Default Db: default

该信息表示查询所使用的数据库。

8、查询语句:

Sql Statement: SELECT COUNT(*) FROM sample_07

如果你帮助其他人排查问题,则需要此信息,因为需要了解查询的构造方式以及涉及的表,在许多情况下,对查询的简单重写将有助于解决问题或提高查询性能。

9、执行查询的impalad节点:

Coordinator: impala-daemon-host.com:22000

该信息显示运行查询的Impala daemon服务的主机,通常被称为Coordinator,这有助于我们选择从哪个主机查找INFOWARNINGERROR级别的日志。

10、查询选项:

Query Options (set by configuration):
Query Options (set by configuration and planner): MT_DOP=0

该信息显示当前查询使用了哪些查询选项(QUERY OPTIONS),这有助于我们判断是否在用户级别(user level)或池级别(pool level)覆盖了查询选项。一个示例是将Impala Daemon的内存设置为120GB,但小查询仍然失败,并抛出OutOfMemory异常,通过该信息可以帮助我们验证用户是否在会话中将MEM_LIMIT参数设置了太小的值(可能导致OutOfMemory异常)。

总结

本系列的第1部分介绍了查询的摘要(Summary)部分以帮助我们了解Query Profile的基本信息,在本系列的下一部分,将详细介绍查询计划以及Profile的执行摘要(Execution Summary)部分。

编译自:IMPALA QUERY PROFILE EXPLAINED – PART 1

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取Impala query profile
  • Profile解析
  • 总结
相关产品与服务
专用宿主机
专用宿主机(CVM Dedicated Host,CDH)提供用户独享的物理服务器资源,满足您资源独享、资源物理隔离、安全、合规需求。专用宿主机搭载了腾讯云虚拟化系统,购买之后,您可在其上灵活创建、管理多个自定义规格的云服务器实例,自主规划物理资源的使用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档