Hue概述

Hue(Hadoop User Experience)是一个开源的 Apache Hadoop UI 系统,最早是由Cloudera Desktop 演化而来,由 Cloudera 贡献给开源社区,它是基于 PythonWeb 框架 Django 实现的。通过使用 Hue 可以在浏览器端的 Web 控制台上与Hadoop 集群进行交互来分析处理数据,例如操作 HDFS 上的数据,运行MapReduce Job 等等。

Hue所支持的功能特性集合:

  • 默认基于轻量级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是一个友好的界面集成框架,可以集成我们各种学习过的以及将要学习的框架,一个界面就可以做到查看以及执行所有的框架。


类似的产品还有 Apache Zeppelin。

Hue编译安装

Hue官方网站:https://gethue.com/

HUE官方用户手册:https://docs.gethue.com/

官方安装文档:https://docs.gethue.com/administrator/installation/install/

HUE下载地址:https://docs.gethue.com/releases/

Hue的安装并不是那么简单,官方并没有编译好的软件包,需要从github上下载源码、安装依赖、编译安装。

安装Hue的节点上最好没有安装过MySQL,否则可能有版本冲突,这里选择将Hue安装在 linux122 上。

下载Hue软件包

安装解压缩依赖

1
yum install unzip

到官方网站下载 hue-release-4.3.0.zip;上传至服务器,并解压缩

1
2
3
cd /opt/lagou/software

unzip hue-release-4.3.0.zip

安装依赖

1
2
3
4
5
6
7
# 需要Python支持(Python 2.7+ / Python 3.5+)
python --version

# 在 CentOS 系统中安装编译 Hue 需要的依赖库
yum install ant asciidoc cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain gcc gcc-c++ krb5-devel libffi-devel libxml2- devel libxslt-devel make mysql mysql-devel openldap-devel python-devel sqlite-devel gmp-devel

yum install -y rsync

以上依赖仅适用CentOS/RHEL 7.X,其他情况请参考https://docs.gethue.com/administrator/installation/dependencies/

安装Hue的节点上最好没有安装过MySQL,否则可能有版本冲突

安装过程中需要联网,网络不好会有各种奇怪的问题

安装Maven

编译 Hue 还需要 Maven 环境,因此在编译前需要安装 Maven。

下载 apache-maven-3.6.3-bin.tar.gz,上传虚拟机解压缩,添加环境变量

1
2
3
4
5
6
7
8
9
10
vi /etc/profile

# 添加环境变量
export MAVEN_HOME=/opt/lagou/servers/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin

source /etc/profile

# 验证安装
mvn --version


编译

1
2
3
4
5
6
7
8
9
10
# 进入 hue 源码目录,进行编译。 使用 PREFIX 指定安装 Hue 的路径
cd /opt/lagou/software/hue-release-4.3.0
PREFIX=/opt/lagou/servers make install
cd /opt/lagou/servers

# 如果想把HUE从移动到另外一个地方,由于HUE使用了Python包的一些绝对路径,移动之后则必须执行以下命令:
# 这里不要执行
rm app.reg
rm -r build
make apps

备注:这一步持续的时间比较长,还会从网上下载 jar;需要联网

修改 Hadoop 配置文件

  • 在 hdfs-site.xml 中增加配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- 进入Linux121 中的Hadoop目录下
cd /opt/lagou/servers/hadoop-2.9.2/etc/hadoop

vim hdfs-site.xml

<!-- HUE -->
<!-- 此配置已在Hiveserver2 -->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>

<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
  • 在 core-site.xml 中增加配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- 进入Linux121 中的Hadoop目录下
cd /opt/lagou/servers/hadoop-2.9.2/etc/hadoop

vim core-site.xml

<!-- HUE -->
<property>
<name>hadoop.proxyuser.hue.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hue.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hdfs.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hdfs.groups</name>
<value>*</value>
</property>
  • 增加 httpfs-site.xml 文件,加入配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- 进入Linux121 中的Hadoop目录下
cd /opt/lagou/servers/hadoop-2.9.2/etc/hadoop

vim httpfs-site.xml

<!-- HUE -->
<property>
<name>httpfs.proxyuser.hue.hosts</name>
<value>*</value>
</property>
<property>
<name>httpfs.proxyuser.hue.groups</name>
<value>*</value>
</property>
  • 把hdfs-site.xml>、core-site.xml、httpfs-site.xml 复制到其他虚拟机
1
2
3
4
5
6
7
8
9
10
-- 进入Linux121 中的Hadoop目录下
cd /opt/lagou/servers/hadoop-2.9.2/etc/hadoop

scp hdfs-site.xml Linux122:$PWD
scp core-site.xml Linux122:$PWD
scp httpfs-site.xml Linux122:$PWD

scp hdfs-site.xml Linux123:$PWD
scp core-site.xml Linux123:$PWD
scp httpfs-site.xml Linux123:$PWD

备注:修改完HDFS相关配置后,需要把配置scp给集群中每台机器,重启hdfs服务。

Hue配置

1
2
3
4
5
6
7
8
9
# 进入 Linux122 Hue 安装目录
cd /opt/lagou/servers/hue

# 进入配置目录
cd desktop/conf

# 复制一份HUE的配置文件,并修改复制的配置文件
cp pseudo-distributed.ini.tmpl pseudo-distributed.ini
vi pseudo-distributed.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# [desktop]
http_host=Linux122
http_port=8000
is_hue_4=true
time_zone=Asia/Shanghai
dev=true
server_user=hue
server_group=hue
default_user=hue

# 211行左右。禁用solr,规避报错
app_blacklist=search

# [[database]]。Hue默认使用SQLite数据库记录相关元数据,替换为mysql
engine=mysql
host=Linux123
port=3306
user=hive
password=12345678
name=hue

# 1003行左右,Hadoop配置文件的路径
hadoop_conf_dir=/opt/lagou/servers/hadoop-2.9.2/etc/hadoop
1
2
3
4
5
6
7
8
9
10
# 在Linux123 mysql中创建数据库hue,用来存放元数据
mysql -uhive -p12345678
mysql> create database hue;

# 在 Linux122 初始化数据库
cd /opt/lagou/servers/hue/build/env/bin
./hue syncdb
./hue migrate

# 检查数据

启动 Hue 服务

1
2
3
4
5
6
7
# 增加 hue 用户和用户组
groupadd hue
useradd -g hue hue

# 在hue安装路径下执行
cd /opt/lagou/servers/hue/build/env/bin
./supervisor

在浏览器中输入:Linux122:8000,可以看见以下画面,说明安装成功。

第一次访问的时候,需要设置超级管理员用户和密码。记住它(hue/123456)。