高可用Hadoop平臺-Hue In Hadoop

哥不是小蘿莉發表於2015-05-25

1.概述

  前面一篇部落格《高可用Hadoop平臺-Ganglia安裝部署》,為大家介紹了Ganglia在Hadoop中的整合,今天為大家介紹另一款工具——Hue,該工具功能比較豐富,下面是今天為大家分享的內容目錄:

  • Hue簡述
  • Hue In Hadoop
  • 截圖預覽

  本文所使用的環境是Apache Hadoop-2.6版本,下面開始今天的內容分享。

2.Hue簡述

  Hue是一個開源的Apache Hadoop UI系統,由Cloudera Desktop演化而來,最後Cloudera公司將其貢獻給Apache基金會的Hadoop社群,它是基於Python Web框架Django實現的。通過使用Hue我們可以在瀏覽器端的Web控制檯上與Hadoop叢集進行互動來分析處理資料,例如操作HDFS上的資料,執行MapReduce Job,執行Hive的SQL語句,瀏覽HBase資料庫等等。

  Hue在資料庫方面,預設使用的是SQLite資料庫來管理自身的資料,包括使用者認證和授權,另外,可以自定義為MySQL資料庫、Postgresql資料庫、以及Oracle資料庫。其自身的功能包含有:

  • 對HDFS的訪問,通過瀏覽器來查閱HDFS的資料。
  • Hive編輯器:可以編寫HQL和執行HQL指令碼,以及檢視執行結果等相關Hive功能。
  • 提供Solr搜尋應用,並對應相應的視覺化資料檢視以及DashBoard。
  • 提供Impala的應用進行資料互動查詢。
  • 最新的版本整合了Spark編輯器和DashBoard
  • 支援Pig編輯器,並能夠執行編寫的指令碼任務。
  • Oozie排程器,可以通過DashBoard來提交和監控Workflow、Coordinator以及Bundle。
  • 支援HBase對資料的查詢修改以及視覺化。
  • 支援對Metastore的瀏覽,可以訪問Hive的後設資料以及對應的HCatalog。
  • 另外,還有對Job的支援,Sqoop,ZooKeeper以及DB(MySQL,SQLite,Oracle等)的支援。

  下面就通過整合部署,來預覽相關功能。

3.Hue In Hadoop

  本文所使用的Hadoop環境是基於Apache社群版的Hadoop2.6,在整合到Hadoop上,Hue的部署過程是有點複雜的。Hue在CDH上是可以輕鬆的整合的,我們在使用CDH的那套管理系統是,可以非常容易的新增Hue的相關服務。然而,在實際業務場景中,往往Hadoop叢集使用的並非都是CDH版的,在Cloudera公司使用將其貢獻給Apache基金會後,在Hadoop的整合也有了較好的改善,下面就為大家介紹如何去整合到Apache的社群版Hadoop上。

3.1基礎軟體

  在整合Hue工具時,我們需要去下載對應的原始碼,該系統是開源免費的,可以在GitHub上下載到對應的原始碼,下載地址如下所示:

git@github.com:cloudera/hue.git

  我們使用Git命令將其克隆下來,命令如下所示:

git clone git@github.com:cloudera/hue.git

  然後,我們在Hadoop賬號下安裝Hue需要的依賴環境,命令如下所示:

sudo yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel

  等待其安裝完畢。

3.2編譯部署

  在基礎環境準備完成後,我們開始對Hue的原始碼進行編譯,編譯的時候,Python的版本需要是2.6+以上,不然在編譯的時候會出現錯誤,編譯命令如下所示:

[hadoop@nna ~]$ cd hue
[hadoop@nna ~]$ make apps

  等待其編譯完成,在編譯的過程中有可能會出現錯誤,在出現錯誤時Shell控制檯會提示對應的錯誤資訊,大家可以根據錯誤資訊的提示來解決對應的問題,在編譯完成後,我們接下來需要對其做對應的配置,Hue的預設配置是啟動本地的Web服務,這個我們需要對其修改,供外網或者內網去訪問其Web服務地址,我們在Hue的根目錄下的desktop/conf資料夾下加pseudo-distributed.ini檔案,然後我們對新增的檔案新增如下內容:

vi pseudo-distributed.ini
[desktop]
http_host=10.211.55.28
http_port=8000
[hadoop]
    [[hdfs_clusters]]
        [[[default]]]
            fs_defaultfs=hdfs://cluster1
            logical_name=cluster1
            webhdfs_url=http://10.211.55.26:50070/webhdfs/v1
            hadoop_conf_dir=/home/hadoop/hadoop-2.6.0/etc/hadoop
[beeswax]
    hive_server_host=10.211.55.17
    hive_server_port=10000
    # hive_conf_dir=/home/hive/warehouse
[hbase]
    hbase_clusters=(cluster1|10.211.55.26:9090)
    hbase_conf_dir=/home/hadoop/hbase-1.0.1/conf

  關於Hue的詳細和更多配置需要,大家可以參考官方給的知道文件,連線地址如下 所示:

http://cloudera.github.io/hue/docs-3.8.0/manual.html

  這裡,Hue的整合就完成了,下面可以輸入啟動命令來檢視,命令如下所示:

[hadoop@nna ~]$ /root/hue-3.7.1/build/env/bin/supervisor &

  啟動資訊如下所示:

  下面,在瀏覽器中輸入對應的訪問地址,這裡我配置的Port是8000,在第一次訪問時,需要輸入使用者名稱和密碼來建立一個Administrator,這裡需要在一步的時候需要注意下。

4.截圖預覽

  下面附上Hue的相應的截圖預覽,如下圖所示:

5.總結

  在編譯的時候,大家需要注意Hue的依賴環境,由於我們的Hadoop叢集不是CDH版本的,所以在整合Hue的服務不能像CDH上那麼輕鬆。在Apache的Hadoop社群版上整合部署,會需要對應的環境,若是缺少依賴,在編譯的時候是會發生錯誤的。所以,這裡需要特別留心注意,出錯後,一般都會有提示資訊的,大家可以根據提示檢查定位出錯誤原因。

6.結束語

  這篇部落格就和大家分享到這裡,如果大家在研究學習的過程當中有什麼問題,可以加群進行討論或傳送郵件給我,我會盡我所能為您解答,與君共勉!

相關文章