首页 > 解决方案 > 在 Hive 中禁用信息日志

问题描述

我已经将 Hive(3.1.2 版)和 hadoop(3.2.1 版)一起安装为单节点集群。每当我登录到 hive shell 并执行显示数据库的基本查询时,我都会得到一堆我想隐藏的 INFO 日志。

2021-05-26T16:12:44,244 INFO [main] org.apache.hadoop.hive.conf.HiveConf - Using the default value passed in for log id: f7369a83-e107-48ed-91cc-569ba580c7c8
2021-05-26T16:12:44,244 INFO [main] org.apache.hadoop.hive.ql.session.SessionState - Updating thread name to f7369a83-e107-48ed-91cc-569ba580c7c8 main
OK
default
development
retail_ods
retail_stage
Time taken: 0.026 seconds, Fetched: 4 row(s)
2021-05-26T16:12:44,285 INFO [f7369a83-e107-48ed-91cc-569ba580c7c8 main] org.apache.hadoop.hive.conf.HiveConf - Using the default value passed in for log id: f7369a83-e107-48ed-91cc-569ba580c7c8
2021-05-26T16:12:44,285 INFO [f7369a83-e107-48ed-91cc-569ba580c7c8 main] org.apache.hadoop.hive.ql.session.SessionState - Resetting thread name to  main

这是我的 hive-log4j2.properties 文件。我已将日志级别更改为 ERROR,但它不起作用。

hive.root.logger=ERROR,DRFA
hive.log.dir=${java.io.tmpdir}/${user.name}
hive.log.file=hive.log

log4j.rootLogger=${hive.root.logger}, EventCounter

log4j.threshold=${hive.log.threshold}

log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender

log4j.appender.DRFA.File=${hive.log.dir}/${hive.log.file}

log4j.appender.DRFA.DatePattern=.yyyy-MM-dd

log4j.appender.DRFA.MaxBackupIndex= 10
log4j.appender.DRFA.MaxFileSize = 100MB
log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout

log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p [%t]: %c{2} (%F:%M(%L)) - %m%n

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} [%t]: %p %c{2}: %m%n
log4j.appender.console.encoding=UTF-8

log4j.appender.EventCounter=org.apache.hadoop.hive.shims.HiveEventCounter

log4j.category.DataNucleus=ERROR,DRFA
log4j.category.Datastore=ERROR,DRFA
log4j.category.Datastore.Schema=ERROR,DRFA
log4j.category.JPOX.Datastore=ERROR,DRFA
log4j.category.JPOX.Plugin=ERROR,DRFA
log4j.category.JPOX.MetaData=ERROR,DRFA
log4j.category.JPOX.Query=ERROR,DRFA
log4j.category.JPOX.General=ERROR,DRFA
log4j.category.JPOX.Enhancer=ERROR,DRFA


log4j.logger.org.apache.zookeeper.server.NIOServerCnxn=WARN,DRFA
log4j.logger.org.apache.zookeeper.ClientCnxnSocketNIO=WARN,DRFA

请让我知道如何将所有这些 INFO 日志隐藏在 hive shell 中。

标签: javahadooplogginghivelog4j

解决方案


在hive-site.xml(安装文件夹的/conf目录内)添加此属性后,我的工作:

<property>
    <name>hive.async.log.enabled</name>
    <value>false</value> 
</property>

推荐阅读