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


0.缘起

在使用beeline跑hive查询时候会产生很多无用的INFO日志,这些日志看起来非常杂乱,如下图:

 

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

1. 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 ${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=NONE

b) 或者在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>

 

 

3. 实战演示

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

输出:

果然是简洁了很多!嗯哼

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM