问题描述:在使用beeline跑hive查询时候会产生很多无用的INFO日志,这些日志看起来非常杂乱,如下图:
- HiveServer中的Logging配置
一般来说,我们会在Beeline客户端(Hive 0.14以后)看到HiveServer2操作日志。
以下为HiveServer2中与日志相关的参数:
hive.server2.logging.operation.enabled true
#添加于Hive 0.14.0,如果为true,HiveServer2将保存操作日志并使其可供客户端使用。
hive.server2.logging.operation.log.location
j
a
v
a
.
i
o
.
t
m
p
d
i
r
/
{java.io.tmpdir}/
java.io.tmpdir/{user.name}/operation_logs
#添加于Hive 0.14.0. 如果启用了日志记录功能,则存储操作日志的顶级目录。
hive.server2.logging.operation.verbose(Hive 0.14到1.1) false
#如果为true,则可用于客户端的HiveServer2操作日志将是详细的。 由hive.server2.logging.operation.level替换为Hive 1.2.0。
hive.server2.logging.operation.level(Hive 1.2以后) EXECUTION
#HiveServer2操作日志记录模式可供客户端在会话级别设置。 为此,hive.server2.logging.operation.enabled应设置为true。 其允许的值为:
NONE:忽略任何日志记录。
EXECUTION:记录任务完成情况
PERFORMANCE: 执行+性能日志
VERBOSE:所有日志
解决方法:
1、在使用beeline时加入以下设置即可–hiveconf hive.server2.logging.operation.level=NONE
2、或者在hive-site.xml中加入如下配置也可以禁用在beeline中显示额外信息
<property>
<name>hive.server2.logging.operation.enabled</name>
<value>true</value>
</property>
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>/opt/log/hive/operation_logs</value>
</property>
命令示例:
bin/beeline --hiveconf hive.server2.logging.operation.level=NONE