HIVE既然是运行在hadoop上,最后又被翻译为MapReduce程序,经过yarn来执行。因此咱们若是想解决HIVE中出现的错误,须要分红几个过程oop
2,3过程当中的错误,请参考hadoop相关的教程,这里只是提醒你们思考的时候须要考虑到这两个方面的缘由。搞清楚哪个过程出问题以后采起进一步分析。spa
/tmp/<user.name>文件夹的hive.log文件中,全路径就是/tmp/当前用户名/hive.log。翻译
每一个job执行后都会产生Query ID,在hive.log中搜索关键字。确认时间一致后,以后的log就是当前job的信息。调试
Query ID = root_20171108160217_d51b321f-1902-4353-ae5b-2ebe5227f82f日志
在默认的日志级别状况下,是不能将DEBUG信息输出,这样一来出现的各类详细的错误信息都是不能数错的。可是咱们能够经过如下两种方式修改log4j输出的日志级别,从而利用这些调试日志进行错误定位,具体作法以下:code
$ hive --hiveconf hive.root.logger=DEBUG,console (hive启动时用该命令替代)
或者在${HIVE_HOME}/conf/hive-log4j.properties文件中找到hive.root.logger属性,并将其修改成下面的设置blog
hive.root.logger=DEBUG,console
具体如何查询,就看本身了。教程