HIVE-如何查看执行日志

本文介绍了Hive在Hadoop平台上运行时可能出现的问题及其排查方法,包括Hive自身的解析错误、Hadoop文件系统的错误及YARN调度过程中的错误。文中详细说明了如何定位日志文件、查询Job相关信息以及调整日志级别以获取更多调试信息。

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

HIVE既然是运行在hadoop上,最后又被翻译为MapReduce程序,通过yarn来执行。所以我们如果想解决HIVE中出现的错误,需要分成几个过程

  1. HIVE自身翻译成为MR之前的解析错误
  2. Hadoop文件系统的错误
  3. YARN调度过程中的错误

2,3过程中的错误,请参考hadoop相关的教程,这里只是提醒大家思考的时候需要考虑到这两个方面的原因。搞清楚哪一个过程出问题之后采取进一步分析。

 

1.HIVE默认log文件保存的地方

/tmp/<user.name>文件夹的hive.log文件中,全路径就是/tmp/当前用户名/hive.log。

2.如何定位当前job的log信息

每个job执行后都会产生Query ID,在hive.log中搜索关键字。确认时间一致后,之后的log就是当前job的信息。

Query ID = root_20171108160217_d51b321f-1902-4353-ae5b-2ebe5227f82f

3,如何查看更多的错误信息

 

在默认的日志级别情况下,是不能将DEBUG信息输出,这样一来出现的各种详细的错误信息都是不能数错的。但是我们可以通过以下两种方式修改log4j输出的日志级别,从而利用这些调试日志进行错误定位,具体做法如下:

  $ hive --hiveconf hive.root.logger=DEBUG,console (hive启动时用该命令替代)

 

或者在${HIVE_HOME}/conf/hive-log4j.properties文件中找到hive.root.logger属性,并将其修改为下面的设置

hive.root.logger=DEBUG,console

 

具体如何查询,就看自己了。

 

转载于:https://www.cnblogs.com/kouryoushine/p/7805657.html

<think>我们被要求使用中文回答问题,并在回答后提出3-5个相关问题,且必须以“§§相关问题§§”开头,然后列出问题。 用户的问题是关于HiveHiveServer2日志的。 回答内容应涵盖: 1. HiveServer2日志的作用和位置 2. 如何配置日志级别和输出路径 3. 如何查看日志以诊断问题 然后,根据回答提出3-5个相关问题。 注意:回答必须符合规则,否则无效。</think>HiveServer2 日志是诊断 Hive 服务运行状态的关键工具,记录了服务启动、会话管理、查询执行错误信息。以下是关键要点: ### 一、日志位置与配置 1. **默认路径** - 日志文件:`/tmp/<user>/hive.log`(Linux)或 `C:\tmp\<user>\hive.log`(Windows) - 操作日志Hive 配置目录下的 `hiveserver2.log` 2. **配置方法** 修改 `hive-log4j2.properties` 文件: ```properties # 设置日志级别(DEBUG/INFO/ERROR) logger.hive.level = DEBUG # 修改日志路径 property.hive.log.dir = /var/log/hive ``` 重启服务生效:`hive --service hiveserver2 --stop && hive --service hiveserver2` ### 二、核心日志内容 | **日志类型** | **关键信息** | **诊断用途** | |---------------------|---------------------------------------------|----------------------------------| | 启动日志 | Hive 版本、端口号(默认 10000)、元存储连接 | 确认服务是否正常启动 | | 会话日志 | 客户端 IP、Session ID、认证信息 | 跟踪用户连接与会话超时问题 | | 查询执行日志 | SQL 语句、MapReduce Job ID、执行计划 | 优化慢查询,定位执行失败原因 | | 错误日志 | Java 异常堆栈(如 ClassNotFoundException) | 解决依赖冲突或配置错误 | ### 三、日志分析示例 典型错误日志片段: ```log ERROR [HiveServer2-Handler-Pool]: thrift.ThriftCLIService (ThriftCLIService.java:openSession(289)) - Error opening session: java.lang.NoClassDefFoundError: org/apache/tez/dag/api/TezConfiguration ``` **诊断**:缺少 Tez 引擎依赖,需添加 Tez JAR 到 `HIVE_AUX_JARS_PATH`。 ### 四、最佳实践 1. **日志轮转**:配置 Log4j 的 `RollingFileAppender` 避免日志过大 2. **动态调试**:运行时调整日志级别(无需重启): ```bash curl -X POST -d "logger=org.apache.hadoop.hive&level=DEBUG" http://localhost:10002/loggers ``` 3. **集成监控**:将日志接入 ELK(Elasticsearch+Logstash+Kibana)实现实时分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值