Hue Web應用的架構
Hue 是一個Web應用,用來簡化用戶和Hadoop集群的交互。Hue技術架構,如下圖所示,從總體上來講,Hue應用采用的是B/S架構,該web應用的后台采用python編程語言別寫的。大體上可以分為三層,分別是前端view層、Web服務層和Backend服務層。Web服務層和Backend服務層之間使用RPC的方式調用。
Hue整合大數據技術棧架構
由於大數據框架很多,為了解決某個問題,一般來說會用到多個框架,但是每個框架又都有自己的web UI監控界面,對應着不同的端口號。比如HDFS(50070)、YARN(8088)、MapReduce(19888)等。這個時候有一個統一的web UI界面去管理各個大數據常用框架是非常方便的。這就使得對大數據的開發、監控和運維更加的方便。
Hue幾乎可以支持所有大數據框架,包含有HDFS文件系統對的頁面(調用HDFS API,進行增刪改查的操作),有HIVE UI界面(使用HiveServer2,JDBC方式連接,可以在頁面上編寫HQL語句,進行數據分析查詢),YARN監控及Oozie工作流任務調度頁面等等。Hue通過把這些大數據技術棧整合在一起,通過統一的Web UI來訪問和管理,極大地提高了大數據用戶和管理員的工作效率。這里總結一下Hue支持哪些功能:
默認基於輕量級sqlite數據庫管理會話數據,用戶認證和授權,可以自定義為MySQL、Postgresql,以及Oracle
基於文件瀏覽器(File Browser)訪問HDFS
基於Hive編輯器來開發和運行Hive查詢
支持基於Solr進行搜索的應用,並提供可視化的數據視圖,以及儀表板(Dashboard)
支持基於Impala的應用進行交互式查詢
支持Spark編輯器和儀表板(Dashboard)
支持Pig編輯器,並能夠提交腳本任務
支持Oozie編輯器,可以通過儀表板提交和監控Workflow、Coordinator和Bundle
支持HBase瀏覽器,能夠可視化數據、查詢數據、修改HBase表
支持Metastore瀏覽器,可以訪問Hive的元數據,以及HCatalog
支持Job瀏覽器,能夠訪問MapReduce Job(MR1/MR2-YARN)
支持Job設計器,能夠創建MapReduce/Streaming/Java Job
支持Sqoop 2編輯器和儀表板(Dashboard)
支持ZooKeeper瀏覽器和編輯器
支持MySql、PostGresql、Sqlite和Oracle數據庫查詢編輯器
使用sentry基於角色的授權以及多租戶的管理.(Hue 2.x or 3.x)
Hue操作數據
使用Hue可以以圖形界面的形式創建solr集合,導入數據到Solr中,並建立數據查找索引。
提供了人性化的UI頁面把數據從文件系統(比如Linux文件系統、HDFS)導入Hive中,導入的時候可以把數據轉換成相應的Hive表,導入完成之后就可以直接使用Hive SQL查詢剛剛導入的數據了。[^import-hive]
使用Hue以圖形界面的形式操作HDFS,包括導入、移動、重命名、刪除、復制、修改、下載、排序、查看其中的數據等等操作。
Hue集成了Sqoop組件,這樣就可以通過Hue把數據從其他文件系統批量導入到Hadoop中,或者從Hadoop中導出。[^http://blog.cloudera.com/blog/2013/11/sqooping-data-with-hue/]
可以通過圖形界面的方式操作HBase,可以導入數據到HBase中,可以通過UI界面進行相關的增加、刪除和查詢操作。[^http://blog.cloudera.com/blog/2013/09/how-to-manage-hbase-data-via-hue/]
Hue數據查詢分析
通過Hue使用Hive進行數據分析
Hue提供了非常人性化的Hive SQL編輯界面,編輯好SQL語句之后就可以直接查詢數據倉庫中的數據,還可以保存SQL語句、查看和刪除歷史SQL語句。對於所查詢出來的數據,可以下載以及以多種圖表的形式展示它們。通過Hue,用戶還可以通過自定義函數然后在Hue中通過SQL引用執行。
通過Hue使用Impala進行數據分析
和Hive一樣,Hue提供了類似的圖形界面用來使用Impala進行數據查詢分析。形式和Hive的類似。如下圖所示:
類似於Hive和Impala在Hue中編輯器,Pig的功能和表達式可以直接在Hue中進行編輯和執行等操作。用戶可以自定義函數和參數,編輯器能夠自動補全Pig關鍵字、別名和HDFS路徑,還支持語法高亮,編寫好腳本之后點擊一下就可以提交執行。用戶可以查看到執行的進度、執行的結果和日志。
Hue數據可視化
Hue使用Web圖形界面的可視化的形式展示所查詢出來的數據,展示的形式有表格、柱狀圖、折線圖、餅狀圖、地圖等等。這些可視化功能的使用非常簡單。比如,使用Hive SQL查詢出相關的數據出來之后,我想以柱狀圖的形式展示它們,我只需要勾選橫坐標和縱坐標的字段就可以顯示出我想要的柱狀圖。
Hue提供了可視化的HDFS文件系統,使得對HDFS中的數據的操作完全能夠通過UI界面完成,包括查看文件中的內容。
類似地,Hue提供了可視化的UI界面操作HBase中的數據。包含了數據展示,各個版本的數據的查看和其他編輯操作的UI界面,提供了展示數據的排序方式等等。
下圖表示,編輯HBase數據的可視化界面
Hue提供了用戶自定義儀表盤(Dashboard)展示數據的功能。數據的來源是Solr這個搜索引擎。通過拖拽的方式設置儀表盤(也就是數據展示的方式),有文本框、時間表、餅狀圖、線、地圖、HTML等組件。圖表支持實時動態更新。設置儀表盤的全部操作都是通過圖形界面完成的,對於不同的展示方式,用戶可以選擇相應的字段,整個過程非常簡單方便。保存好剛剛配置好的儀表盤之后,我們可以選擇分享給相應權限的用戶,擁有不同的權限的用戶將看到不同的內容。[^http://gethue.com/hadoop-search-dynamic-search-dashboards-with-solr/]
上圖表示表盤設置中的以地圖的方式展示國家碼。
Hue對任務調度的可視化
Hue以可視化的方式向用戶展示任務的執行情況,具體包括任務的執行進度、任務的執行狀態(正在運行、執行成功、執行失敗、被killed),任務的執行時間,還能夠顯示該任務的標准輸出信息、錯誤日志、系統日志等等信息。還可以查看該任務的元數據、向用戶展示了正在運行或者已經結束的任務的詳細的執行情況。除此之外,Hue還提供了關鍵字查找和按照任務執行狀態分類查找的功能。
Hue權限控制
Hue在HueServer2中使用了Sentry進行細粒度的、基於角色的權限控制。這里的細粒度是指,Sentry不僅僅可以給某一個用戶組或者某一個角色授予權限,還可以為某一個數據庫或者一個數據庫表授予權限,甚至還可以為某一個角色授予只能執行某一類型的SQL查詢的權限。Sentry不僅僅有用戶組的概念,還引入了角色(role)的概念,使得企業能夠輕松靈活的管理大量用戶和數據對象的權限,即使這些用戶和數據對象在頻繁變化。除此之外,Sentry還是“統一授權”的。具體來講,就是訪問控制規則一旦定義好之后,這些規則就統一作用於多個框架(比如Hive、Impala、Pig)。舉一個例子:我們為某一個角色或者用戶組授權只能進行Hive查詢,我們可以讓這個權限不僅僅作用於Hive,還可以是Impala、MapReduce、Pig和HCatalog。
Sentry的優勢還體現在它本身對Hadoop生態組件的集成。如下圖所示,我們可以使用Sentry為Hadoop中的多個框架進行權限控制。
原文鏈接:https://blog.csdn.net/liangyihuai/article/details/54137163