1. 程式人生 > >在Hortonworks HDP 2.2 上安裝Hue 3.7.1

在Hortonworks HDP 2.2 上安裝Hue 3.7.1

Hortonworks 的招牌一直是採用全部apache 開源方案搭建hadoop 大資料系統。  Hortonworks HDP 2.2 今年新鮮出爐, 裡面集成了開源hadoop社群幾乎所有最新的內容。  

遺憾的是 Hue 這個目前在hadoop上最好用的查詢介面 在HDP上一直不好用。  原因很簡單,hue 是Cloudera 開發的, 預設整合在Cloudera的hadoop 發行版 CDH中。 因此Hue 中使用了一些CDH所特有的api。 這些api 導致hue 不能直接 和 Apache 標準版的hadoop 相容。 

Hortonworks  只好自己對hue 做了一定的修改使其和HDP相容, 因此HDP2.2 中包含一個hue 2.6. 版本。 (要知道最新的hue 版本已經出到3.7.1了!讓你還去用2.6, 能忍麼?!) 

那麼就一起看看怎麼在HDP2.2上安裝最新版的hue 3.7.1 吧! 本文基於Hue 官網上的一個教程, 並根據實際情況作了調整。  

我的安裝的作業系統環境是CentOS 6,  HDP2.2 GA版本。  叢集一共有3個物理節點 (一個name node, 二個 data node)。   

安裝Hue的時候,Hue只是作為一個訪問Hadoop叢集上各種服務的UI 介面, 其實可以安裝在叢集上任意節點, 甚至叢集外 。 我這次是隨機選取了一個data node來安裝Hue。 

安裝依賴包

Hue的編譯和安裝需要依賴下面的一些包, 請在安裝hue之前 先行安裝。 


下載Tarball

Hue是一個混合開發的軟體,其中包括了自帶的web伺服器, c語言編譯的模組,已經python的模組, 因此 安裝Hue需要 將tarball 下載後在本地解壓。 

執行安裝命令

修改Hue的配置檔案

給Hue打補丁,使其相容Hive 0.14 

我的HDP叢集上主要執行的是Hive, 而Hue提供了非常友好的Hive 查詢介面。 提供了sql 自動完成(表名,欄位名), 智慧的sql錯誤提示, (自動定位到出錯的行) 表結構和表資料的自由瀏覽,基本上和傳統的資料庫客戶端的功能非常接近了。   

但是因為相容性問題,Hue 與HDP搭配時,執行hive sql時, 無法實時看到執行的日誌。 對於一些執行時間比較長的ob, 這會讓人很焦慮。 另外對於一些執行中出錯的情況,例如執行到一半因為資源不足等原因失敗,查詢失敗的日誌也會變得很費勁。   這個相容性問題的實質是 hue 的hive 查詢時使用了一個“getLog” 的api ,去像hive 查詢實時的執行日誌。 而在Hive 0.14 的標準版中,這個api 是沒有實現的。 (或者說Cloudera 提交了相關程式碼, 但是被apache 拒絕了), 於是Cloudera在自己的發行版中加入了這個api。  同時為了Hue 能夠和apache 標準版hive適配,  Hue團隊自己也提交了一個hue的patch, 允許hue 在無法呼叫GetLog 時, 通過使用FetchResults 這個api 來獲取執行日誌。  因此我們需要手動把這個patch加到我們的hue 安裝目錄中。 

修改Hue的 原始碼, 修復其在中文系統下自動完成快捷鍵

前面提到的Hue的 各種自動完成功能非常好用, 但使用中文作業系統的同學會發現Hue 使用Ctrl+Space來觸發自動提示。 這個快捷鍵直接被系統輸入法切換佔用了,任憑你把鍵盤敲爛, Hue的自動完成也出不來。。。  所以需要自己稍微對Hue的原始碼做一點小修改來更換另一個快捷鍵組合。

啟動重啟Hue