一、简介
hue是一个开源的apache hadoop ui系统,由cloudear desktop演化而来,最后cloudera公司将其贡献给了apache基金会的hadoop社区,它基于python框架django实现的。
通过使用hue,我们可以使用可视化的界面在web浏览器上与hadoop集群交互来分析处理数据,例如操作hdfs上的数据,运行MapReduce Job,查看HBase中的数据
二、安装
(1)下载
http://archive.cloudera.com/cdh5/cdh/5/
从这里下载cdh5.11.1的最新版本的hue,3.9.0版本,到本地,并上传到服务器,解压缩到app目录下
(2)必要的组件准备
需要先安装好mysql数据库
需要安装好下面的组件
sudo yum install ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi gcc gcc-c++ krb5-devel libtidy libxml2-devel libxslt-devel openldap-devel python-devel python-simplejson sqlite-devel gmp-devel -y
(3)编译
到hue的根目录下,运行
make apps
三、配置
(1)hue基本配置
打开desktop/conf/hue.ini文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
(2)配置hue集成hadoop
首先hadoop里设置代理用户,需要配置hadoop的core-site.xml
1 2 3 4 5 6 7 8 |
|
加入这两个属性即可。
然后重启hadoop集群
sbin/stop-dfs.sh
sbin/stop-yarn.sh
sbin/start-dfs.sh
sbin/start-yarn.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
|
(3)配置hue集成hive
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
(4)配置hue集成hbase
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
(5)配置hue集成oozie
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
(6)配置hue使用mysql数据库
先配置一个mysql数据库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
然后去mysql中,建立一个数据库,就是上面的配置文件中配置的数据库oozie
create database hue default character set utf8 default collate utf8_general_ci;
接着,进入hue的build/env/bin目录下,运行:
./hue syncdb
./hue migrate
完毕之后,数据库中的表其实默认引擎是MyISAM,需要调整成InnoDB,否则在hue的首页会出现下面的警告信息:
PREFERRED_STORAGE_ENGINE We recommend MySQL InnoDB engine over MyISAM which does not support transactions.
那么运行下面的语句即可批量调整:
1 2 3 4 5 6 7 8 |
|
(注意空格上面是一句,空格下面是一句,分两次执行)
(7)启动hue
先启动hive的metastore服务,和hiveserver2服务
nohup hive --service metastore &
nohup hive --service hiveserver2 &
再启动hue
nohup /home/hadoop/app/hue/build/env/bin/supervisor &
(6)访问hue
http://hadoop004:8888
四、可能会遇到的问题
Failed to contact an active Resource Manager: YARN RM returned a failed response: { "RemoteException" : { "message" : "User: hue is not allowed to impersonate admin", "exception" : "AuthorizationException", "javaClassName" : "org.apache.hadoop.security.authorize.AuthorizationException" } } (error 403)
这个问题是hadoop的core-site.xml配置的代理的用户和hue配置文件的用户不一致造成的。
比如,hadoop的core-site.xml是这样配置的
<property>
<name>hadoop.proxyuser.hue.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hue.groups</name>
<value>*</value>
</property>
代理用户是hue。
而hue里面是这样配置的:
# Webserver runs as this user
#server_user=hue
#server_group=hue
需要把server_user和server_group设置成hue,即可