Hive查询日志 - 每个查询的聚合日志

时间:2013-12-12 21:26:07

标签: performance logging hive

Hive在哪里存储查询日志? Getting Started page有一个属性hive.querylog.location。这似乎表明每个配置单元/客户端都会将日志存储在此位置。是否存在按查询汇总所有这些内容的位置?

2 个答案:

答案 0 :(得分:1)

默认情况下,Hive将其日志存储在/tmp/currentuser位置。在Unix / Linux提示符下使用hive命令调用Hive shell时,Hive会在显示Hive提示符之前使用行Hive history file=location of the log显示日志的位置。示例输出如下所示:

[root@localhost root]# hive
Logging initialized using configuration in jar:file:/usr/lib/hive/lib/hive-common-0.10.0-cdh4.4.0.jar!/hive-log4j.properties
Hive history file=/tmp/root/hive_job_log_46a27ee2-7ac1-43f5-a66b-20d6ea982421_849420221.txt
hive>

如果Hive查询生成MapReduce作业,则可以通过可通过浏览器访问的JobTracker页面查看这些日志。

日志的路径为:
Mapper logs: Job Tracker Page -> Completed Jobs -> Jobid -> map -> task id -> Task Logs
Reducer logs: Job Tracker Page -> Completed Jobs -> Jobid -> reduce -> task id -> Task Logs

答案 1 :(得分:0)

使用以下命令执行查询

hive --hiveconf hive.root.logger=DRFA --hiveconf hive.log.dir=./logs --hiveconf hive.log.level=DEBUG -e "<query>"

OR

hive --hiveconf hive.root.logger=DRFA --hiveconf hive.log.dir=./logs --hiveconf hive.log.level=DEBUG -f <hql-file>

它将在logs文件夹中创建一个日志文件。确保日志文件夹位于当前目录中。