只記得表名或者該任務的一些關鍵字,忘記了自己創建表時候的語句,可以從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
進行搜索了,這樣就能找到那天的日誌了,然後把日誌拉下來,解析下定位下就可以溯源當時執行的任務了!