我正在Hive中编写Java UDF并进行调试我通过LogFactory.getLog对象将一些消息打印到标准输出。但我想知道我在哪里可以看到这些消息。我正在使用CDH 5.4和Hive 0.12
答案 0 :(得分:0)
默认情况下,Hive将其日志存储在/ tmp / currentuser位置。在Unix / Linux提示符下使用hive命令调用Hive shell时,Hive会在显示Hive提示符之前使用行Hive history file =日志的位置显示日志的位置。示例输出如下所示:
[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 CLI运行查询时,会为每次查询运行存储日志(BeeLine和JDBC客户端不会创建这些日志)。您可以按如下方式管理这些查询日志文件:
通过在hive-site.xml和Hive的Hive服务配置安全阀中指定以下属性,设置查询日志文件的位置(默认为/ tmp / user)并通过禁用基于进度的查询日志记录来减少日志记录量用于hive-site.xml的客户端配置安全阀:
<property>
<name>hive.querylog.location</name>
<value>/Changed/Log/Directory</value>
</property>
<property>
<name>hive.querylog.enable.plan.progress</name>
<value>false</value>
</property>
将更改保存到配置中。
重新启动Hive服务并重新部署客户端配置。