解决:提交的hive任务如何找回其提交的语句

只记得表名或者该任务的一些关键字,忘记了自己创建表时候的语句,可以从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进行搜索了,这样就能找到那天的日志了,然后把日志拉下来,解析下定位下就可以溯源当时执行的任务了!

你可能感兴趣的:(Hadoop,Hive)