版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MrLevo520/article/details/82080973
只记得表名或者该任务的一些关键字,忘记了自己创建表时候的语句,可以从hive的执行日志中获取原始数据。特别适合定位该测试表是怎么创建的,或者定位别人表创建的由来
首先要确认提交的hive任务是在哪一台服务器提交的,一般默认hive的执行日志会放在提交任务的机器的/data/hive/tmp/{用户名}
目录下
首先需要切换到root用户,然后切到根目录,不清楚目录结构的请看:Linux目录结构和常用命令
然后切换到hive的日志目录,
/data/hive/tmp/{用户名}
,这里的用户名就是你提交hive时候的登录账户然后这边会有一系列的执行日志,使用
ll -lrt
可以看到执行的hive日志,这里的日志记录了使用这台机器提交的hive任务,一天一份,你的7.30提交的hive记录就在这个hive.log.2018-07-30
里面-rw-rw-r-- 1 user user 57047158 Jul 31 22:27 hive.log.2018-07-30 -rw-rw-r-- 1 user user 21125631 Aug 1 14:48 hive.log.2018-07-31 -rw-rw-r-- 1 user user 11904515 Aug 2 09:55 hive.log.2018-08-01
使用
find . -type f | xargs grep 'database.table'
,这句话的意思是找到当前目录下,所有文件中包含database.table
语句的文件,当然你描述的越清楚,检索的精度越高,如你明确知道自己的是建表语句,那么可以使用create table database.table as select
进行搜索了,这样就能找到那天的日志了,然后把日志拉下来,解析下定位下就可以溯源当时执行的任务了!