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

相關文章
相關標籤/搜索