使用beeline/hive时,该如何中止打印INFO日志

0.缘起

在使用beeline跑hive查询时候会产生不少无用的INFO日志,这些日志看起来很是杂乱,以下图:java

 

如何在beeline窗口中去除多余的日志,使其看起来简洁一些呢?性能

1. HiveServer中的Logging配置

通常来讲,咱们会在Beeline客户端(Hive 0.14之后)看到HiveServer2操做日志。
如下为HiveServer2中与日志相关的参数:spa

参数 默认值 描述
hive.server2.logging.operation.enabled true
添加于Hive 0.14.0,若是为true,HiveServer2将保存操做日志并使其可供客户端使用。
hive.server2.logging.operation.log.location ${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:全部日志日志

 

2. 解决方案

a) 在使用beeline时加入如下设置便可--hiveconf hive.server2.logging.operation.level=NONEcode

b) 或者在hive-site.xml中加入以下配置也能够禁用在beeline中显示额外信息server

 

<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>

 

 

3. 实战演示

bin/beeline  --hiveconf hive.server2.logging.operation.level=NONE

输出:xml

果真是简洁了不少!嗯哼blog

相关文章
相关标签/搜索