hive 日誌怎麼查看_Hive日志调试 | 学步园
在很多程序中,我们都可以通过输出日志的形式来得到程序运行情况,通过这些输出日志来调试程序,Hive也不例外。在Hive中,使用的是Log4j来输出日志,默认情况下,CLI是不能将日志信息输出到控制台的。在Hive0.13.0之前的版本,默认的日志级别是WARN,在Hive0.13.0开始,默认的日志级别是INFO。默认的日志存放在/tmp/文件夹的hive.log文件中,全路径就是/tmp//hive.log。
注:这里有一个的bug,在本地模式下,log文件名为".log",而不是"hive.log",可以在这里看到https://issues.apache.org/jira/browse/HIVE-5528,这个bug将会在Hive0.13.0中得到解决。
在默认的日志级别情况下,是不能将DEBUG信息输出,这样一来出现的各种详细的错误信息都是不能查看到的。但是我们可以通过以下两种方式修改log4j输出的日志级别,从而修改log4j输出的日志级别,从而利用这些调试日志进行错误定位,具体做法如下:
[wyp@master ~]$ hive --hiveconf hive.root.logger=DEBUG,console
或者在${HIVE_HOME}/conf/hive-log4j.properties文件中找到hive.root.logger属性,并将其修改为下面的设置:
hive.root.logger=DEBUG,console
上面两种方式的设置各有优劣,方法一的设定只是对本次会话有效,下次如果还想修改日志输出级别需要重新设定,但不是每时每刻都需要修改日志的输出级别,我们只有在碰到错误的时候才会看看详细信息,所以这种方法还是不错的;对于方法二将日志输出级别设定到配置文件中,这个设定对所有用户都生效,避免了每次开启CLI的时候都要重新设置,但是这种情况无时无刻都会打印HQL一大堆的运行日志,看起来比较不雅。
另外还有一点就是上一篇文章Hive几种参数配置的方法中提到的,有一些系统级的参数,在HQL中设定是无效的。这里就是一个很好的例子。因为设定Log的参数读取会在会话建立以前完成。这也就是说,我们不能通过下面的方法来修改log4j的日志输出级别:
hive> set hiveconf:hive.root.logger=DEBUG,console;
这样你在进入CLI的时候将会得到一些类似下面的调试信息:
[wyp@master /home/q/hive-0.11.0-bin/conf]$ hive
................................为了篇幅,省略了很多............................
13/12/25 15:14:54 DEBUG parse.VariableSubstitution: Substitution is on: hive
................................为了篇幅,省略了很多............................
13/12/25 15:14:54 DEBUG security.Groups: Creating new Groups object
13/12/25 15:14:54 DEBUG util.NativeCodeLoader: Trying to load the c...
library for your platform... using builtin-java classes where applicable
13/12/25 15:14:54 DEBUG security.JniBasedUnixGroupsMappingWithFallback:
Falling back to shell based
13/12/25 15:14:54 DEBUG security.JniBasedUnixGroupsMappingWithFallback:
Group mapping impl=org.apache.hadoop.security.ShellBasedUnixGroupsMapping
13/12/25 15:14:54 DEBUG security.UserGroupInformation: hadoop login
13/12/25 15:14:54 DEBUG security.UserGroupInformation: using local
user:UnixPrincipal: wyp
13/12/25 15:14:54 DEBUG security.UserGroupInformation:
UGI loginUser:wyp (auth:SIMPLE)
................................为了篇幅,省略了很多............................
下面举个日志调试的例子,在没有修改日志输出级别之前,有下面的查询所有表的HQL如下:
hive> show tables;
FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate
org.apache.hadoop.hive.metastore.HiveMetaStoreClient
FAILED: Execution Error, return code 1 from
org.apache.hadoop.hive.ql.exec.DDLTask
hive>
得到上面的错误,我们从上面的错误输出只知道是元数据有问题,具体的错误也不知道是啥,这时候如果我们修改日志调试级别hive.root.logger=DEBUG,console,我们再看看运行上面语句的错误输出:
hive> show tables;
................................为了篇幅,省略了很多............................
13/12/25 15:23:58 INFO metastore.ObjectStore: ObjectStore, initialize called
13/12/25 15:23:58 ERROR Datastore.Schema: Failed initialising database.
Access denied for user 'datalog5'@'l-datalog5.data.cn1' (using password: YES)
org.datanucleus.exceptions.NucleusDataStoreException:
Access denied for user 'datalog5'@'l-datalog5.data.cn1' (using password: YES)
at org.datanucleus.store.rdbms.ConnectionFactoryImpl
$ManagedConnectionImpl.getConnection(ConnectionFactoryImpl.java:536)
at org.datanucleus.store.rdbms.RDBMSStoreManager.
(RDBMSStoreManager.java:290)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
................................为了篇幅,省略了很多............................
通过上面的错误堆栈我们就可以将问题定位到数据库连接的问题上,这么一来错误的定位范围就大大减少了,我们可以查看hive-site.xml文件中的数据库连接配置是否正确,从而解决问题。
hive 日誌怎麼查看_Hive日志调试 | 学步园相关推荐
- hive 日誌怎麼查看_Hive各个日志里都存放了什么信息?
审计日志 首先,对于审计日志来说,记录了某个时间点某个用户从哪个IP发起对HiveServer或者MetaStore的请求以及记录执行的语句是什么. 如下的HiveServer审计日志,表示在2016 ...
- mysql查看session对应的ip_Mysql 查看session连接数,状态 | 学步园
命令: show processlist; 如果是root帐号,你能看到所有用户的当前连接.如果是其它普通帐号,只能看到自己占用的连接. show processlist;只列出前100条,如果想全列 ...
- 【方案】去哪儿网徐磊:如何利用开源技术构建日处理130亿+的实时日志平台?...
转自:http://mp.weixin.qq.com/s?__biz=MzIzMzEzODYwOA==&mid=2665284466&idx=1&sn=2b06a5298217 ...
- codeigniter_如何在浏览器中查看CodeIgniter日志文件
codeigniter by Seun Matt 通过Seun Matt 如何在浏览器中查看CodeIgniter日志文件 (How to View CodeIgniter Log Files in ...
- 如何查询oracle最近报警信息,教你怎样用Oracle方便地查看报警日志错误
在网上查了几天的资料,尝试综合清除告警日志内容及建外部表的方式来解决这一问题. 一:备份并清除告警日志内容 将每天的告警日志备份好,然后进行清除. 1:备份报警日志 在$ORACLE_HOME/SID ...
- oracle告警日志备份,教你怎样用Oracle方便地查看报警日志错误
在网上查了几天的资料,尝试综合清除告警日志内容及建外部表的方式来解决这一问题. 一:备份并清除告警日志内容 将每天的告警日志备份好,然后进行清除. 1:备份报警日志 在$ORACLE_HOME/SID ...
- SmartNews:基于 Flink 加速 Hive 日表生产的实践
简介: 将 Flink 无缝地集成到以 Airflow 和 Hive 为主的批处理系统的技术挑战和应对方案. 本文介绍了 SmartNews 利用 Flink 加速 Hive 日表的生产,将 Flin ...
- 日志查看_实时查看容器日志
实时查看容器日志 介绍一款使用了几个月的开源小工具,Dozzle.它是一款轻量.简单的容器日志查看工具. 本篇将简单介绍如何使用它,包括搭配 Traefik,以及如何快速从源码构建它. 写在前面 这款 ...
- iis php日志查看工具,教你如何查看IIS日志
网站的服务器会把访问信息.服务器的工作以及每一个文件的调用,记录在这个IIS日志里,所以学会查看IIS日志不仅可以相对准确的了解一些页面的访问,还可以得知搜索引擎蜘蛛的情况,目前虽然有很多的IIS日志 ...
- ADB命令连接逍遥模拟器并查看安卓日志
1.先进入逍遥模拟器安装目录(MEmu文件夹下),如:D:\Program Files\Microvirt\MEmu 在CMD下输入:adb connect 127.0.0.1:21503 2.实时查 ...
最新文章
- excel 如何快速实现绝对引用
- ASP操作Excel技术总结
- PInvoke调用导致堆栈不对称
- volatile 关键字是如何保证可见性的?
- 转载通过 Docker 实现传统应用程序的现代化
- 数组玩法(1):下标移位
- [转]java中的io笔记
- java反编译jar包
- 计算机毕业设计——基于SSM框架的公寓租房管理系统的设计与实现
- PHP 高并发秒杀解决方案
- DELPHI 编程(一) __快速认识Delphi
- 2021年中国发改委和财政部PPP项目整体现状分析,城市基础建设仍是重中之重「图」
- MacBook在任意文件夹目录打开终端
- python处理mp4视频提取音频转为mp3或者wav,并进行截取
- 第三十三章 SQL命令 DROP INDEX
- Android 开发之初识 Android
- java小组项目口号,小组口号霸气押韵大全(精选60句)
- 一些小软件闪退的解决方案
- GIT TAG 批量删除
- NAND FLASH编程器烧录详解
热门文章
- nginx封锁恶意IP,并且定时取消的两种脚本
- SQL Server高可用——日志传送(4-3)——使用
- Oracle中索引的使用 索引性能优化调整
- VS2010与VS2012变化的快捷键
- Linux下,如何安装有互相依赖关系的RPM包[转]
- php正则验证邮箱、手机号、姓名、身份证、特殊符号等
- 六石编程学:如何整合两个项目的代码
- 由捧哏巨匠谈创新的难度
- 输入法快捷键导致功能软件功能失效
- E: flAbsPath on /var/lib/dpkg/status failed - realpath (2: 没有那个文件或目录)