Hive 命令行 如果它不是在后台映射减少作业,则选择查询时间不正确

Posted

技术标签:

【中文标题】Hive 命令行 如果它不是在后台映射减少作业,则选择查询时间不正确【英文标题】:Hive command line Select query time taken incorrect if its not map reduce job in the background 【发布时间】:2017-06-30 15:14:22 【问题描述】:

我正在运行如下配置单元查询

Select count(*),group_name from table_name group by group_name;

状态:正在运行(在 YARN 集群上执行,App id XXXX)

--------------------------------------------------------------------------------
        VERTICES      STATUS  TOTAL  COMPLETED  RUNNING  PENDING  FAILED  KILLED
--------------------------------------------------------------------------------
Map 1 ..........   SUCCEEDED     54         54        0        0       0       0
Reducer 2 ......   SUCCEEDED     13         13        0        0       0       0
--------------------------------------------------------------------------------
VERTICES: 02/02  [==========================>>] 100%  ELAPSED TIME: 24.93 s
--------------------------------------------------------------------------------
OK
Result
Time taken: 26.786 seconds, Fetched: 10 row(s)

当涉及到 map reduce 时,上述时间看起来很准确。但是当我运行如下简单查询时

select group_name from table_name

耗时:0.771 秒,提取:14 行

以上时间不正确。

如果您想知道如何更准确地测量查询时间,我们将不胜感激。

提前致谢

【问题讨论】:

【参考方案1】:

从 shell 脚本测量时间。有time 命令。

像这样调用hive 命令:

time hive -e 'select group_name from table_name;'

time 命令输出 3 次:realusersys

real        0m0.007s
user        0m0.000s
sys         0m0.005s 

真实是您可能想知道的。 Real 是挂钟时间 - 从通话开始到结束的时间。这是所有经过的时间,包括其他进程使用的时间片和进程阻塞的时间(例如,如果它正在等待 I/O 完成)。

另请参阅此问题:How do I get just real time value from 'time' command?

【讨论】:

这是完美的。谢谢

以上是关于Hive 命令行 如果它不是在后台映射减少作业,则选择查询时间不正确的主要内容,如果未能解决你的问题,请参考以下文章

hive常用命令

hive执行作业时reduce任务个数设置为多少合适

Hive性能优化(全面)

节点本地映射减少作业

[收藏]Hive性能优化(全面)

查询具有大量列的 Hive 表时,是不是可以减少 MetaStore 检查的数量?