天天看點

在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

繼續閱讀