Hadoop UI — HUE的簡單介紹

轉自:https://blog.csdn.net/ywheel1989/article/details/51560312

HUE是什麼

HUE=Hadoop User Experience

Hue是一個開源的Apache Hadoop UI系統,由Cloudera Desktop演化而來,最後Cloudera公司將其貢獻給Apache基金會的Hadoop社區,它是基於Python Web框架Django實現的。

通過使用Hue我們可以在瀏覽器端的Web控制檯上與Hadoop集羣進行交互來分析處理數據,例如操作HDFS上的數據,運行MapReduce Job,執行Hive的SQL語句,瀏覽HBase數據庫等等。

HUE鏈接

核心功能

  • SQL編輯器,支持Hive, Impala, MySQL, Oracle, PostgreSQL, SparkSQL, Solr SQL, Phoenix…
  • 搜索引擎Solr的各種圖表
  • Spark和Hadoop的友好界面支持
  • 支持調度系統Apache Oozie,可進行workflow的編輯、查看

HUE提供的這些功能相比Hadoop生態各組件提供的界面更加友好,但是一些需要debug的場景可能還是需要使用原生系統才能更加深入的找到錯誤的原因。

HUE中查看Oozie workflow時,也可以很方便的看到整個workflow的DAG圖,不過在最新版本中已經將DAG圖去掉了,只能看到workflow中的action列表和他們之間的跳轉關係,想要看DAG圖的仍然可以使用oozie原生的界面系統查看。

HUE登錄

如果自己搭建了HUE,則可以使用管理員賬戶創建一個新的用戶,然後使用新的用戶進行登錄,見下圖:

HUE登錄圖

使用HUE官網上的live demo可以嚐鮮。如果大家自己沒有搭建大數據平臺,沒有安裝HUE的話,可以先在該demo上嘗試。點擊Play with the live Demo now!,將會進入HUE的”我的文檔”:

HUE Demo圖

HDFS文件瀏覽

HUE可以很方便的瀏覽HDFS中的目錄和文件,並且進行文件和目錄的創建、複製、刪除、下載以及修改權限等操作。

HDFS實現了一個和POSIX系統類似的文件和目錄的權限模型。每個文件和目錄有一個所有者(owner)和一個組(group)。文件或目錄對其所有者、同組的其他用戶以及所有其他用戶分別有着不同的權限。但,用戶身份機制對HDFS本身來說只是外部特性。HDFS並不提供創建用戶身份、創建組或處理用戶憑證等功能。 使用HUE訪問HDFS時,HDFS簡單的將HUE上的用戶名和組的名稱進行權限的校驗。

在Live Demo中,點擊”文件瀏覽器”, 進入HDFS的家目錄:

HUE HDFS圖

PS: Live Demo中禁了文件上傳功能。

作業瀏覽

點擊Job Browser,可以查看作業列表,並且可以通過點擊右上角的”成功”,”正在運行”,”失敗”,”停止”來篩選不同狀態的作業:

HUE Job Browser

我們在實際工作中發現,當集羣(CDH5.2) 配置了HA後,當active的ResourceManager自動切換後(比如NN1上的ResourceManager是active,而NN2是standby,當NN1出現故障, NN2上的ResourceManager轉變爲active狀態),HUE的job browser將不能夠正確顯示。只有當修復故障後,將NN1上的ResourceManager重新變成active狀態,HUE的job browser才能正常工作。不知道這個問題在後續版本是否已經得到修復。

Hive查詢

HUE的beeswax app提供友好方便的Hive查詢功能,能夠選擇不同的Hive數據庫,編寫HQL語句,提交查詢任務,並且能夠在界面下方看到查詢作業運行的日誌。在得到結果後,還提供進行簡單的圖表分析能力。

HUE Hive查詢

點擊”Data Browsers”->”Metastore表”,還可以看到Hive中的數據庫,數據庫中的表以及各個表的元數據等信息。

HUE Hive MetaStore

Oozie Workflow編輯

HUE也提供了很好的Oozie的集成,能夠在HUE上創建和編輯Bundles, Coordinator, Workflow. Oozie的介紹可以去官網查看。下圖爲在HUE上創建一個新的workflow,在該界面上,可以直接拖動不同的組件,變成DAG中的節點,並且設置各個action的流轉邏輯。

HUE WF Editor

當然Oozie也可以通過命令行的方式提交B,C,W. 不過是使用HUE創建的workflow,或者是通過命令行提交的workflow,都可以在HUE上查看運行的狀況:

HUE WF Browser

只是通過命令行提交的workflow就不可以在HUE上進行編輯了。使用配置文件、命令行提交的方式能夠保證在生產環境上運行的和在測試環境上運行的版本一致,而使用HUE界面編輯的方式雖然方便,但也可能會帶來人工操作在生產環境中失誤的風險,有利也有弊吧。

Contribution

我在給同事準備培訓材料的時候,到HUE的github上去查找資料。在看到HUE的主要功能時,github上的原文是這樣的:

HUE Features old

恰好我司主要使用的數據庫是PostgreSQL,看到PostGresl感覺怪怪的,於是Google了一把,PostgreSQL有兩個名字:PostgreSQL和Postgres,目前官方網站上的名字仍然是PostgreSQL. 不管PostGresl是否有什麼典故,但是PostgreSQL一定是對的。因此,我去查了下如何給HUE提交代碼修改。在Github上能找到wiki: Contribute to HUE, HUE有自己的JIRA和Review Board, 但也說了The Hue project gladly welcomes any patches or pull requests!

於是我在github上給HUE發了一個Issue和一個Pull Request。幾天後Pull Request被接收,merge到了master分支上,可以看到這個Commit

在這裏記錄一下更新的步驟:

  1. Fork HUE的工程,比如 ywheel/hue
  2. 創建一個新的分支,不要使用master分支提交修改。比如我創建了fix-postgresql-spelling分支。
  3. 將代碼pull下來,修改後commit,提交到fix-postgresql-spelling分支。
  4. 創建issue。當HUE的工程上創建issue, 描述清楚問題,提交。
  5. 點擊’Pull Request’, 選擇目的工程和分支,比如cloudera/hue的master分支。填寫comment, 說明已創建的issue, create pull request.

接下來就是等了,等該提交被review, 被merge到master分支, 等你自己的名字出現在Contributors裏面, then everything DONE!

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