http://ju.outofmemory.cn/entry/105162
Hue是一個開源的Apache Hadoop UI系統,最先是由Cloudera Desktop演化而來,由Cloudera貢獻給開源社區,它是基於Python Web框架Django實現的。經過使用Hue咱們能夠在瀏覽器端的Web控制檯上與Hadoop集羣進行交互來分析處理數據,例如操做HDFS上的數據,運行MapReduce Job等等。很早之前就據說過Hue的便利與強大,一直沒能親自嘗試使用,下面先經過官網給出的特性,經過翻譯原文簡單瞭解一下Hue所支持的功能特性集合:python
默認基於輕量級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數據庫查詢編輯器
下面,咱們經過實際安裝來驗證Hue的一些功能。mysql
環境準備git
這裏,我所基於的基本環境及其配置狀況,以下所示:github
CentOS-6.6 (Final)
JDK-1.7.0_25
Maven-3.2.1
Git-1.7.1
Hue-3.7.0(branch-3.7.1)
Hadoop-2.2.0
Hive-0.14
Python-2.6.6
基於上面的軟件工具,要保證正確安裝和配置。須要說明的是,咱們經過Hue來執行Hive查詢,須要啓動HiveServer2服務:web
cd /usr/local/hive
bin/hiveserver2 &
不然經過Hue Web控制沒法執行Hive查詢。sql
安裝配置數據庫
我新建了一個hadoop用戶,以hadoop用戶,首先使用yum工具來安裝Hue相關的依賴軟件:apache
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
而後,執行以下命令進行Hue軟件包的下載構建:json
cd /usr/local/
sudo git clone https://github.com/cloudera/hue.git branch-3.7.1
sudo chown -R hadoop:hadoop branch-3.7.1/
cd branch-3.7.1/
make apps
上述過程若是沒有任何問題,咱們就已經安裝好Hue。Hue的配置文件爲/usr/local/branch-3.7.1/desktop/conf/pseudo-distributed.ini,默認的配置文件不能正常運行Hue,因此須要修改其中的內容,與咱們對應的Hadoop集羣配置相對應。該配置文件根據整合不一樣的軟件,將配置分紅多個段,每一個段下面還有子段,便於管理配置,以下所示(省略子段名稱):api
desktop
libsaml
libopenid
liboauth
librdbms
hadoop
filebrowser
liboozie
oozie
beeswax
impala
pig
sqoop
proxy
hbase
search
indexer
jobsub
jobbrowser
zookeeper
spark
useradmin
libsentry
咱們很容易根據須要來配置本身須要的內容。咱們修改配置文件的狀況,以下表所示:
Hue配置段 Hue配置項 Hue配置值 說明
desktop default_hdfs_superuser hadoop HDFS管理用戶
desktop http_host 10.10.4.125 Hue Web Server所在主機/IP
desktop http_port 8000 Hue Web Server服務端口
desktop server_user hadoop 運行Hue Web Server的進程用戶
desktop server_group hadoop 運行Hue Web Server的進程用戶組
desktop default_user yanjun Hue管理員
hadoop/hdfs_clusters fs_defaultfs hdfs://hadoop6:8020 對應core-site.xml配置項fs.defaultFS
hadoop/hdfs_clusters hadoop_conf_dir /usr/local/hadoop/etc/hadoop Hadoop配置文件目錄
hadoop/yarn_clusters resourcemanager_host hadoop6 對應yarn-site.xml配置項yarn.resourcemanager.hostname
hadoop/yarn_clusters resourcemanager_port 8032 ResourceManager服務端口號
hadoop/yarn_clusters resourcemanager_api_url http://hadoop6:8088 對應於yarn-site.xml配置項yarn.resourcemanager.webapp.address
hadoop/yarn_clusters proxy_api_url http://hadoop6:8888 對應yarn-site.xml配置項yarn.web-proxy.address
hadoop/yarn_clusters history_server_api_url http://hadoo6:19888 對應mapred-site.xml配置項mapreduce.jobhistory.webapp.address
beeswax hive_server_host 10.10.4.125 Hive所在節點主機名/IP
beeswax hive_server_port 10000 HiveServer2服務端口號
beeswax hive_conf_dir /usr/local/hive/conf Hive配置文件目錄
上面主要配置了Hadoop集羣相關的內容,以及Hive(beeswax段配置的是Hive,經過HIveServer2與Hive交互)。
最後,啓動Hue服務,執行以下命令:
cd /usr/local/branch-3.7.1/
build/env/bin/supervisor &
Hue功能驗證
咱們主要經過在Hue Web控制檯上執行Hive查詢,因此須要準備Hive相關的表和數據。
Hive準備
咱們首先在Hive中建立一個數據庫(若是沒有權限則受權):
GRANT ALL TO USER hadoop;
CREATE DATABASE user_db;
這裏,hadoop用戶是Hive的管理用戶,能夠將所有權限賦給該用戶。
建立示例表,建表DDL以下所示:
CREATE TABLE user_db.daily_user_info (
device_type int,
version string,
channel string,
udid string)
PARTITIONED BY (
stat_date string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';
準備的數據文件格式,示例以下所示:
.2.1 C-gbnpk b01b8178b86cebb9fddc035bb238876d
3.0.7 A-wanglouko e2b7a3d8713d51c0215c3a4affacbc95
1.2.7 H-follower 766e7b2d2eedba2996498605fa03ed33
1.2.7 A-shiry d2924e24d9dbc887c3bea5a1682204d9
1.5.1 Z-wammer f880af48ba2567de0f3f9a6bb70fa962
1.2.7 H-clouda aa051d9e2accbae74004d761ec747110
2.2.13 H-clouda 02a32fd61c60dd2c5d9ed8a826c53be4
2.5.9 B-ywsy 04cc447ad65dcea5a131d5a993268edf
各個字段之間使用TAB分隔,每一個字段含義與上面表user_db.daily_user_info的字段對應,而後咱們將測試數據加載到示例表的各個分區之中:
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-05.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-05');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-06.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-06');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-07.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-07');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-08.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-08');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-09.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-09');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-10.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-10');
LOAD DATA LOCAL INPATH '/home/hadoop/u2014-12-11.log' OVERWRITE INTO TABLE user_db.daily_user_info PARTITION (stat_date='2014-12-11');
能夠經過Hive CLI接口登陸,查看錶中數據:
SELECT COUNT(1) FROM daily_user_info;
我這裏有241709545條記錄做爲測試數據。
Hue登陸頁面 Hue服務啓動成功後,能夠直接經過瀏覽器打開鏈接http://10.10.4.125:8000/,就能夠登陸。第一次打開,須要輸入默認用戶和口令,而後就能夠登陸進去,以下圖所示: