如何查看hadoop任務跑的sql及任務的輸入輸出

有一個場景,好比大家公司集羣的hdfs的使用率常常快要不夠用了,想刪除一些就羣上的無用數據,某些數據是否被別的目錄依賴使用,這個時候咱們就須要解析數據之間的依賴關係,而後從沒有下游的數據開始刪除,或者設置其生命週期,當某個數據的份數超過其所使用範圍,咱們就能夠將它認爲是無用數據,此數據就能夠刪掉。sql

由於若是想管理好大數據集羣hdfs上的數據合理使用和存在、清理,咱們須要二個基本數據,第一就是目錄數據的生命週期,第二就是目錄之間的依賴關係。oop

目錄級數據的生命週期

這個就要根據具體的也許須要來設置該目錄的生命週期,通常狀況下,好比阿里的odps上,表的生命週期是按照天來計算的。可是其實純粹的按照天來設置生命週期是不那麼合理的,好比有的表是每月才產出一份,這時候再按照天來設置生命週期顯然不太合理,使用方還要算算那幾個月是31天,30天等去計算,其實他們使用數據多是最近產出的多少份數據。由於對於目錄來講,以份爲單位來對數據進行生命週期的設置和清理是比較合理的。大數據

數據之間的依賴關係

聲明一下:此處的依賴關係就只限於提交任務到yarn上的mr任務,其餘不經過mr任務進行數據導入或者導出的數據須要各自系統去註冊數據的血緣依賴關係。咱們這裏只討論提交到yarn上的mr任務產出的數據之間的依賴關係。此處有幾個步驟:3d

  • 天天跑的任務都在hdfs上以日期爲目錄的格式存聽任務跑的時候的信息,咱們能夠天天離線跑任務去解析,更新最新的依賴關係。
  • 根據以上生成的依賴的關係,咱們進行血緣關係的組織。 這裏的思路其實不難的,我給你們大概講解下怎麼作。首先咱們看下在集羣上任務運行歷史都是以日期文件夾保存的,具體的列表以下:
    集羣運行任務列表

如何查看hadoop任務跑的sql及任務的輸入輸出 任務運行列表orm

每一個任務都有運行的參數配置和任務輸出結果,好比咱們關心的任務運行的腳本(固然若是不是hive,就沒有腳本),任務的輸入輸出目錄關係,咱們均可以看到.cdn

  • 好比咱們想看某個任務的信息,怎麼看呢?點擊任務id,會跳到任務詳情頁面,以下圖: xml

    備註:這邊有任務的overview和配置信息,configuration,這裏的配置信息在hdfs上是以xml文件保存的,在這有一個可視化的界面,咱們只挑本身比較關心的配置項去看好了。

  • hive.query.string是指該任務執行的sql語句。 blog

  • inputformat.inputdir是指該任務的輸入路徑,多個則以逗號隔開 生命週期

  • location或者outputformat.dir是指該任務的輸出路徑,多個則以逗號隔開。 hadoop

    在使用過程當中發現也有坑,就是create table select這種語法,輸出路徑解析不出來。可能須要特別處理,根據拿到的query語句進行sql語法解析的校訂。

你們又什麼問題或者疑問歡迎交流,校訂。

相關文章
相關標籤/搜索