Hive SQL 監控系統 - Hive Falcon

哥不是小蘿莉發表於2016-10-08

1.概述

  在開發工作當中,提交 Hadoop 任務,任務的執行詳情,這是我們所關心的,當業務並不複雜的時候,我們可以使用 Hadoop 提供的命令工具去管理 YARN 中的任務。在編寫 Hive SQL 的時候,需要在 Hive 終端,編寫 SQL 語句,來觀察 MapReduce 的執行情況,長此以往,感覺非常的不便。另外隨著業務的複雜化,任務的數量增加,此時我們在使用這套流程,已預感到力不從心,這時候 Hive 的監控系統此刻便尤為顯得重要,我們需要觀察 Hive SQL 的 MapReduce 執行詳情以及在 YARN 中的相關狀態。

  因此,我們經過調研,從網際網路公司的一些需求出發,從各位 DEVS 的使用經驗和反饋出發,結合業界的一些大的開源的 Hadoop SQL 訊息監控,用監控的一些思考出發,設計開發了現在這樣的監控系統:Hive Falcon。

  Hive Falcon 用於監控 Hadoop 叢集中被提交的任務,以及其執行的狀態詳情。其中 Yarn 中任務詳情包含任務 ID,提交者,任務型別,完成狀態等資訊。另外,還可以編寫 Hive SQL,並運 SQL,檢視 SQL 執行詳情。也可以檢視 Hive 倉庫中所存在的表及其表結構等資訊。下載地址,如下所示:

2.內容

  Hive Falcon 涉及以下內容:

  • Dashboard
  • Query
  • Tables
  • Tasks
  • Clients &  Nodes

2.1 Dashboard

  我們通過在瀏覽器中輸入 http://host:port/hf,訪問 Hive Falcon 的 Dashboard 頁面。該頁面包含以下內容:

  • Hive Clients
  • Hive Tables
  • Hadoop DataNodes
  • YARN Tasks
  • Hive Clients Graph

  如下圖所示:

2.2 Query

  Query 模組下,提供一個執行 Hive SQL 的介面,該介面可以用來檢視觀察 SQL 執行的 MapReduce 詳情。包含 SQL 編輯區,日誌輸出,以及結果展示。如下圖所示:

  提示:在 SQL 編輯區可以通過 Alt+/ 快捷鍵,快速調出 SQL 關鍵字。

2.3 Tables

  Tables 展示 Hive 中所有的表資訊,包含以下內容:

  • 表名
  • 表型別(如:內部表,外部表等)
  • 所屬者
  • 存放路徑
  • 建立時間

  如下圖所示:

 

  每一個表名都附帶一個超連結,可以通過該超連結檢視該表的表結構,如下圖所示:

 

2.4 Tasks

  Tasks 模組下所涉及的內容是 YARN 上的任務詳情,包含的內容如下所示:

  • All(所有任務)
  • Running(正在執行的任務)
  • Finished(已完成的任務)
  • Failed(以失敗的任務)
  • Killed(已失敗的任務)

  如下圖所示:

2.5 Clients & Nodes

  該模組展示 Hive Client 詳情,以及 Hadoop DataNode 的詳情,如下圖所示:

2.6 指令碼命令

命令 描述
hf.sh start 啟動 Hive Falcon 
hf.sh status 檢視 Hive Falcon
hf.sh stop 停止 Hive Falcon
hf.sh restart 重啟 Hive Falcon
hf.sh stats 檢視 Hive Falcon 在 Linux 系統中所佔用的控制程式碼數量

 

3.資料採集

  Hive Falcon 系統的各個模組的資料來源,所包含的內容,如下圖所示: 

 

4.總結

  Hive Falcon 的安裝使用比較簡單,下載安裝,安裝文件的描述進行安裝配置即可,安裝部署文件地址,如下所示:

5.結束語

  這篇部落格就和大家分享到這裡,如果大家在研究學習的過程當中有什麼問題,可以加群進行討論或傳送郵件給我,我會盡我所能為您解答,與君共勉!

相關文章