解決:提交的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進行搜索了,這樣就能找到那天的日誌了,然後把日誌拉下來,解析下定位下就可以溯源當時執行的任務了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章