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 次:real
、user
和 sys
real 0m0.007s
user 0m0.000s
sys 0m0.005s
真实是您可能想知道的。 Real 是挂钟时间 - 从通话开始到结束的时间。这是所有经过的时间,包括其他进程使用的时间片和进程阻塞的时间(例如,如果它正在等待 I/O 完成)。
另请参阅此问题:How do I get just real time value from 'time' command?
【讨论】:
这是完美的。谢谢以上是关于Hive 命令行 如果它不是在后台映射减少作业,则选择查询时间不正确的主要内容,如果未能解决你的问题,请参考以下文章