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

使用beeline跑hive查询会产生很多无用INFO日志,文章介绍了停止打印这些无效日志的方法。一般在Beeline客户端(Hive 0.14以后)能看到HiveServer2操作日志,给出了HiveServer2中与日志相关的参数,使用beeline时加入特定设置即可。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在使用beeline跑hive查询时候会产生很多无用的INFO日志,那么该停止打印这些无效日志呢? 具体方法如下

HiveServer中的Logging配置

一般来说,我们会在Beeline客户端(Hive 0.14以后)看到HiveServer2操作日志。
以下为HiveServer2中与日志相关的参数:

参数默认值描述
hive.server2.logging.operation.enabledtrue添加于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以后)EXECUTIONHiveServer2操作日志记录模式可供客户端在会话级别设置。 为此,hive.server2.logging.operation.enabled应设置为true。 其允许的值为: NONE:忽略任何日志记录。 EXECUTION:记录任务完成情况。 PERFORMANCE: 执行+性能日志。 VERBOSE:所有日志。

因此在使用beeline时加入以下设置即可
--hiveconf hive.server2.logging.operation.level=NONE

### 正确启动 Hive Metastore 服务并使用 Hive CLI 的方法 在解决 Hive Metastore 服务启动问题以及 Hive CLI 使用过程中终端无响应或无法输入的问题,需要从多个角度进行排查和配置。以下是详细说明: #### 1. 启动 Hive Metastore 服务 Hive Metastore 服务的启动依赖于 MySQL 数据库服务以及 Hadoop 环境的正常运行。确保以下条件满足后,再尝试启动 Hive Metastore 服务。 - **启动 MySQL 服务**:MySQL 是 Hive Metastore 的存储后端,必须先启动 MySQL 服务。 ```bash service mysql start ``` [^3] - **启动 Hadoop 服务**:Hive 需要依赖 Hadoop 提供的分布式文件系统(HDFS)支持。如果 Hadoop 尚未启动,请执行以下命令: ```bash hdfs namenode -format # 如果是首次启动 Hadoop 或修改了 HDFS 存储设置,则需要执行该命令 start-all.sh mr-jobhistory-daemon.sh start historyserver ``` [^3] - **启动 Hive Metastore 服务**:在确认 MySQL 和 Hadoop 服务正常运行后,可以启动 Hive Metastore 服务。 ```bash nohup hive --service metastore & ``` #### 2. 使用 Hive CLI Hive CLI 是一个交互式工具,用于执行 Hive 查询。如果遇到终端无响应或无法输入的问题,可能是由于以下原因导致的: - **检查 Hive 配置文件**:确保 `hive-site.xml` 文件中正确配置了 Metastore 的连接信息。例如: ```xml <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive_metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive_user</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive_password</value> </property> ``` [^3] - **启动 Hive CLI**:在确认配置文件无误后,可以启动 Hive CLI。 ```bash hive ``` 如果终端无响应或无法输入,可能是因为 Hive CLI 在启动遇到了错误。可以通过以下方式排查: - 查看 Hive 日志文件(通常位于 `/tmp/<username>/hive.log`),定位具体的错误信息。 - 确保 Metastore 服务已成功启动,并且可以通过 JDBC 连接。 #### 3. 解决终端无响应或无法输入的问题 如果在使用 Hive CLI 遇到终端无响应或无法输入的问题,可能是由于以下原因导致的: - **键盘输入法冲突**:在 Linux 系统中,某些输入法框架可能导致终端输入异常。建议切换到英文输入法,或者安装并配置 IBus 输入法框架[^2]。 ```bash sudo apt install ibus ibus-pinyin im-config -n ibus ``` - **虚拟机环境问题**:如果在虚拟机中使用 Hive CLI,可能是虚拟机键盘捕获机制导致的问题。可以尝试按下 `Ctrl + Alt` 组合键释放鼠标和键盘捕获,然后重新尝试输入。 - **Hive CLI 启动失败**:如果 Hive CLI 启动失败,可能是由于 Metastore 服务未正常运行或配置文件错误。可以通过以下命令检查 Metastore 服务状态: ```bash ps -ef | grep metastore ``` #### 4. 使用 Beeline 客户端替代 Hive CLI 如果 Hive CLI 的问题无法解决,可以考虑使用 Beeline 客户端替代。BeelineHive 提供的一个轻量级客户端,支持 JDBC 连接。 - **启动 Beeline 客户端**: ```bash beeline ``` - **连接到 Hive Server2**: ```sql !connect jdbc:hive2://localhost:10000 ``` 确保 Hive Server2 已启动: ```bash nohup hive --service hiveserver2 & ``` [^1] --- ### 注意事项 - 如果 Hive CLI 或 Beeline 客户端仍然无法正常使用,建议检查日志文件中的错误信息,进一步定位问题。 - 确保所有依赖服务(如 MySQL、Hadoop、Metastore)均已正常启动。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值