HUE是Hadoop User Experience的简称,是一个Apache Hadoop UI系统,由Cloudera Desktop演化而来,是基于Python Web框架Django实现的,Cloudera公司将HUE贡献给Apache基金会的Hadoop社区,所以HUE有Apache版本和CDH版本,本文是基于CDH版本的。
官网的文档地址是:http://archive.cloudera.com/cdh5/cdh/5/hue/
HUE是Query、Explore、Repeat,一个轻量级的分析平台。HUE提供了一个操纵Hadoop和开发Hadoop应用的Web界面,它汇集了基于Hadoop的各个工具(如Hive、HBase、HDFS、Zookeeper、Spark等)于一身,使得用户操作他们更容易。
安装HUE之前,应该确保已经安装了Hadoop和Hadoop平台上的其他组件(比如Hive、HBase等)。我们采用编译安装的方式,用的是hue-3.9.0-cdh5.12.0,这个版本是基于Hadoop的CDH5.12版本,HUE版本号是3.9.0,下载地址是:http://archive.cloudera.com/cdh5/cdh/5/
下表是官网提供的安装依赖,Centos属于Redhat。
Redhat | Ubuntu 10.04 | Ubuntu 12.04/14.04 |
---|---|---|
gcc | gcc | gcc |
g++ | g++ | g++ |
libxml2-devel | libxml2-dev | libxml2-dev |
libxslt-devel | libxslt-dev | libxslt-dev |
cyrus-sasl-devel | libsasl2-dev | libsasl2-dev |
cyrus-sasl-gssapi | libsasl2-modules-gssapi-mit | libsasl2-modules-gssapi-mit |
mysql-devel | libmysqlclient-dev | libmysqlclient-dev |
python-devel | python-dev | python-dev |
python-setuptools | python-setuptools | python-setuptools |
sqlite-devel | libsqlite3-dev | libsqlite3-dev |
ant | ant | ant |
libsasl2-dev | cyrus-sasl-devel | libsasl2-dev |
libsasl2-modules-gssapi-mit | cyrus-sasl-gssapi | libsasl2-modules-gssapi-mit |
libkrb5-dev | krb5-devel | libkrb5-dev |
libtidy-0.99-0 | libtidy | libtidy-0.99-0 (For unit tests only) |
mvn | mvn (From maven2 package or tarball) | mvn (From maven2/maven3 package or tarball) |
openldap-dev / libldap2-dev | openldap-devel | libldap2-dev |
使用yum安装所有的依赖,命令如下:
sudo yum -y install ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi gcc gcc-c++ krb5-devel libtidy libxml2-devel libxslt-devel openldap-devel python-devel sqlite-devel openssl-devel mysql-devel gmp-devel
tar -zxvf /opt/sofeware/hue-3.9.0-cdh5.12.0.tar.gz -C /opt/modules/
要在HUE解压目录下执行编译HUE命令,命令如下:
make apps
HUE的配置文件在desktop/conf/hue.ini文件中。
secret_key属性是用来对session进行用哈希加密的字符串,如果不设置,那么hue也能运行,web server将不会对session进行哈希加密,但是会提示建议去设置这个属性。
官网建议30到60个长度的随机字符串,比如设置如下:
secret_key=sWMBw%_]{%ScaeeV,cu{>Czo"t:YV!PJ|^8B{@d.fzFJrn9gw)0LT8"H%MVz
在[desktop]节点下,配置http_host属性,这个属性是指用那个域名访问HUE Web Server,这里设置为当前机器的hostname,
http_host=bigdata-senior01.chybinmy.com
http_port属性是指Web Server监听的端口号,默认是8888
http_host=bigdata-senior01.chybinmy.com
# Time zone name
time_zone=Asia/Shanghai
执行以下命令可以以阻塞式方式启动HUE Web Server
/opt/modules/hue-3.9.0-cdh5.12.0/build/env/bin/supervisor
````
在浏览器中访问:http://bigdata-senior01.chybinmy.com:8888
第一次访问会显示创建用户界面,创建的用户将成为HUE的管理员账号和密码。
登录进去后,可以看到HUE的界面,但是当前功能都不能使用,因为没有集成任何Hadoop的上工具,接下来需要配置HUE与HDFS、YARN、Hive、HBase、Spark等工具的集成。
<div class="se-preview-section-delimiter">div>
### 四、 集成HDFS
HDFS相关的配置在配置文件hue.ini的[hadoop]节点下的[hdfs_clusters]子节点中。
<div class="se-preview-section-delimiter">div>
#### (1) fs_defaultfs
fs_defaultfs属性是指HDFS的根目录,对应于Hadoop配置文件core-site.xml中的fs.defaultFS属性值。
<div class="se-preview-section-delimiter">div>
```shell
fs_defaultfs=hdfs://ns1
hadoop_conf_dir=$HADOOP_HOME/etc/hadoop/
webhdfs_url=http://bigdata-senior01.chybinmy.com:50070/webhdfs/v1
HUE是使用WebHDFS访问HDFS,所以要在Hadoop配置中将它打开,在Hadoop的hdfs-site.xml中添加配置。
<property>
<name>dfs.webhdfs.enabledname>
<value>truevalue>
property>
在Hadoop的core-site.xml配置任意主机上的名为hue的用户都可以访问HDFS,任意用户组的名为hue的用户可以访问HDFS。
<property>
<name>hadoop.proxyuser.hue.hostsname>
<value>*value>
property>
<property>
<name>hadoop.proxyuser.hue.groupsname>
<value>*value>
property>
如果Hadoop是HA模式,是通过httpfs来访问HDFS的,要在httpfs-site.xml配置文件中设置代理用户。
<property>
<name>httpfs.proxyuser.hue.hostsname>
<value>*value>
property>
<property>
<name>httpfs.proxyuser.hue.groupsname>
<value>*value>
property>
当修改了hdfs-site.xml、core-site.xml、httpfs-site.xml后要重新启动HDFS。
/opt/modules/hadoopha/hadoop-2.5.0/sbin/stop-dfs.sh
/opt/modules/hadoopha/hadoop-2.5.0/sbin/start-dfs.sh
如果Hadoop是HA模式,是通过httpfs访问HDFS的,需要将HttpFs服务启动起来,这个服务其实是个一个Tomcat站点,端口默认是14000,命令如下:
启动httpfs:
/opt/modules/hadoopha/hadoop-2.5.0/sbin/httpfs.sh start
查看端口:
netstat -tlnup | grep 14000
再次启动HUE后,可以查看HDFS中的文件了。
/opt/modules/hue-3.9.0-cdh5.12.0/build/env/bin/supervisor
在HUE配置文件hue.ini中,yarn_clusters节点是HUE相关YARN的配置,实例如下:
[[yarn_clusters]]
[[[default]]]
# Enter the host on which you are running the ResourceManager
#如果不是YARN HA模式需要设置这个参数,指定RM在哪个主机上
#resourcemanager_host=localhost
# The port where the ResourceManager IPC listens on
#如果不是YARN HA模式需要设置这个参数,指定RM在哪个主机上
## resourcemanager_port=8032
# Whether to submit jobs to this cluster
#HUE是否将Job提交到当前配置的集群
submit_to=True
# Resource Manager logical name (required for HA)
#HUE是否将Job提交到当前配置的集群
logical_name=ha-rm1111
# Change this if your YARN cluster is Kerberos-secured
## security_enabled=false
# URL of the ResourceManager API
#指定HA中一个RM的API地址
resourcemanager_api_url=http://bigdata-senior02.chybinmy.com:8088
# URL of the ProxyServer API
#指定代理地址
proxy_api_url=http://bigdata-senior02.chybinmy.com:8088
# URL of the HistoryServer API
#指定HistoryServer的地址,使得HUE上可以查看Job历史记录
history_server_api_url=http://bigdata-senior02.chybinmy.com:19888/jobhistory
# URL of the Spark History Server
## spark_history_server_url=http://localhost:18088
# In secure mode (HTTPS), if SSL certificates from YARN Rest APIs
# have to be verified against certificate authority
## ssl_cert_ca_verify=True
# HA support by specifying multiple clusters.
# Redefine different properties there.
# e.g.
[[[ha]]]
# Resource Manager logical name (required for HA)
#指定HA的逻辑名称,要和上面default节点的逻辑名称一致
logical_name=ha-rm1111
# Un-comment to enable
submit_to=True
# URL of the ResourceManager API
#HA中备用的RM API,当default失效时,HUE自动切换到这个指定的RM
resourcemanager_api_url=http://bigdata-senior03.chybinmy.com:8088
首先应该保证已经安装了Hive,并且已经启动了HiveServer2服务,因为HUE是通过HiveSever2连接的Hive,HUE和HiveServer2最好在一台机器上。启动HiveSever2的命令为:
#启动HiveServer2服务
nohup hive --service hiveserver2 > hive_run.log 2>&1 &
#检查端口号,HiveSever2默认端口号是10000
netstat -tlnup |grep 10000
#检查进程
ps -ef | grep HiveServer2
HUE集成Hive是通过配置hue.ini中的beeswax节点配置的。
[beeswax]
# Host where HiveServer2 is running.
# If Kerberos security is enabled, use fully-qualified domain name (FQDN).
# HiveServer2服务所在的主机名
hive_server_host=bigdata-senior03.chybinmy.com
# Port where HiveServer2 Thrift server runs on.
# HiveServer2服务的端口号,默认就是10000
hive_server_port=10000
# Hive configuration directory, where hive-site.xml is located
# Hive的配置文件所在路径
hive_conf_dir=/opt/modules/hive-0.13.1-cdh5.3.6/conf/
# Timeout in seconds for thrift calls to Hive service
# HUE连接Hive 的超时时间,单位是秒
server_conn_timeout=120
配置好以上参数后,重启HUE,就可以进行Hive查询了。
(1) 修改hue.ini文件
[hadoop@bigdata-51cdh conf]$ cd /opt/modules/hue-3.7.0-cdh5.3.6/desktop/conf/
[hadoop@bigdata-51cdh conf]$ vim hue.ini
(2) 修改HBase节点的配置
[hbase]
# 配置HUE连接Hbase使用的Thrift服务器
hbase_clusters=(Cluster|bigdata-51cdh.chybinmy.com:9090)
#HBase配置目录,HUE读取这些配置感知HBase
hbase_conf_dir=/opt/modules/hbase-0.98.6-cdh5.3.6/conf
[hadoop@bigdata-51cdh conf]$ cd /opt/modules/hbase-0.98.6-cdh5.3.6/
[hadoop@bigdata-51cdh hbase-0.98.6-cdh5.3.6]$ bin/hbase-daemon.sh start thrift
启动后可以看到ThriftServer进程。
查看9090端口状态是否监控正常。
[hadoop@bigdata-51cdh hbase-0.98.6-cdh5.3.6]$ netstat -tlnup | grep 9090
nohup /opt/modules/hue-3.7.0-cdh5.3.6/build/env/bin/supervisor > hive_run.log 2>&1 &
访问8888端口的HUE Web页面,转到HBase菜单,可以看到HBase中的表。
http://bigdata-51cdh.chybinmy.com:8888/
可以通过页面:http://bigdata-51cdh.chybinmy.com:8888/desktop/dump_config
查看当前的所有配置,超级管理员才能查看这个页面。
HUE的日志在安装根目录下logs目录中或者是在/var/log/hue目录下可以找到,在日志目录下有以下几个日志文件: