Hive SQL 監控系統 - Hive Falcon
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 倉庫中所存在的表及其表結構等信息。下載地址,如下所示:
- [ Hive Falcon 下載地址 ]
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 系統的數據來源,設計以下內容:
-
YARN 中的任務
-
Hive 的 Session 會話
-
Hive 的元數據表
如下圖所示:
4.總結
Hive Falcon 的安裝使用比較簡單,下載安裝,安裝文檔的描述進行安裝配置即可,安裝部署文檔地址,如下所示:
來自:http://www.cnblogs.com/smartloli/p/5928919.html