github项目地址:https://github.com/cloudera/hue
Hue官方网站:https://gethue.com/
Hue官方用户手册:https://docs.gethue.com/
官方安装文档:https://docs.gethue.com/administrator/installation/install/
github下载地址:https://github.com/cloudera/hue/releases/tag/release-4.10.0
介绍
Hue(Hadoop User Experience)是一个开源的 Web 界面,用于在 Hadoop 集群上执行各种操作。Hue 提供了一个易于使用的 Web 界面,可用于管理集群、浏览数据、运行作业和查询等。Hue 最初是由 Cloudera 开发的,现在已成为 Apache Hadoop 生态系统的一部分。
Hue 主要针对 Hadoop 开发人员和分析师,提供一种方便的方式来与 Hadoop 集群交互。Hue 可以让您轻松地在集群上运行各种任务,如 MapReduce 任务、Hive 查询、Pig 脚本、Sqoop 作业等。此外,Hue 还有一个来自社区的插件生态系统,包括用于数据可视化和数据探索的插件。
通过 Hue,您可以:
- 在集群上运行 MapReduce 任务,以分析数据;
- 运行 Hive 查询,以查询和分析存储在 Hadoop HDFS 中的数据;
- 使用 Pig 工具来运行脚本,以处理大规模的数据;
- 运行 Sqoop 作业,将数据传输到或从关系型数据库中提取数据;
- 使用 Hue 自带的 Impala 界面直接查询 Impala 数据库;
- 使用 Hue 自带的 Spark 界面直接操作 Spark;
- 等等。
总之,Hue 提供了一个非常方便的方式来与 Hadoop 集群进行交互,无需使用命令行或其他复杂的工具。因此,对于开发人员和分析师来说,Hue 是非常有用的工具。
环境
服务器系统:CentOS Linux release 7.9.2009 (Core)
maven: Apache Maven 3.9.2
node:v16.13.2
hue:4.10.0
python:2.7(3.8或3.9也可以)
环境准备
创建用户
官方建议使用hue用户来进行编译安装
1
2
3
4
5
6
7
8
|
#创建用户
adduser hue
#添加密码
echo "123456" | passwd hue --stdin
#允许hue使用sudo并且不用输入密码,需要输入密码的话,可以将‘NOPASSWD:’去掉
echo 'hue ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
|
下载hue源码包
方式一
1
2
|
直接使用curl或wget下载对应版本的源码包
curl -LO https://github.com/cloudera/hue/archive/refs/tags/release-4.10.0.tar.gz
|
方式二
1
2
3
4
5
6
7
|
git clone https://github.com/cloudera/hue.git
cd hue
git tag -l
git checkout release-4.10.0
#查看本地分支是不是release-4.10.0
git branch
|
安装环境依赖项
1
2
3
4
5
|
# 这里参考的官方文档中提供的依赖项,注意最后多了一个rsync
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 rsync -y
|
安装maven
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
|
# 注意,上面的命令会安装java,所以这里就不再安装 直接安装maven
wget https://dlcdn.apache.org/maven/maven-3/3.9.2/binaries/apache-maven-3.9.2-bin.tar.gz --no-check-certificate
tar -zxvf apache-maven-3.9.2-bin.tar.gz -C /usr/local/
#编辑/etc/profile文件写入环境变量
vim /etc/profile
.....
#写入以下内容
# maven
export MAVEN_HOME=/usr/local/apache-maven-3.9.2
export PATH=$PATH:$MAVEN_HOME/bin
或者直接执行以下命令写入
echo 'export MAVEN_HOME=/usr/local/apache-maven-3.9.2' | sudo tee -a /etc/profile
echo 'export PATH=$PATH:$MAVEN_HOME/bin' | sudo tee -a /etc/profile
##然后加载/etc/profile
source /etc/profile
##验证
mvn -v
|
安装node
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
|
wget https://nodejs.org/dist/v16.13.2/node-v16.13.2-linux-x64.tar.gz
tar -zxvf node-v16.13.2-linux-x64.tar.gz -C /usr/local/
#编辑/etc/profile文件写入环境变量
vim /etc/profile
.....
#写入以下内容
#node
export NODE_HOME=/usr/local/node-v16.13.2-linux-x64
export PATH=$NODE_HOME/bin:$NODE_HOME/lib/node_modules:$PATH
或者直接执行以下命令写入
echo 'export NODE_HOME=/usr/local/node-v16.13.2-linux-x64' | sudo tee -a /etc/profile
echo 'export PATH=$NODE_HOME/bin:$NODE_HOME/lib/node_modules:$PATH' | sudo tee -a /etc/profile
##然后加载/etc/profile
source /etc/profile
##验证
node -v
npm -v
|
安装hue
编译hue
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
|
#创建一个目录用于存放编译后的hue
mkdir /opt/software
chown -R hue:hue /opt/software/
##########接下来的操作切换为hue操作
#进入到hue目录下
cd hue-release-4.10.0/
#npm使用淘宝源,避免连接官方源超时问题
npm config set registry https://registry.npm.taobao.org
#在hue路径下执行编译命令
PREFIX=/opt/software/ make install
......
#有大概以下类似输出
133 static files copied to '/opt/software/hue/build/static', 1145 unmodified, 301 post-processed.
make[1]: 离开目录“/opt/software/hue”
#编译完成后会产生一个/opt/software/hue 里面就是hue编译好的内容了
# 启动测试一下看看正常不
cd /opt/software/hue/
build/env/bin/supervisor
#没有报错的话可以直接访问web ui
http://ip:8888/
|
启动、停止hue
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#####启动
# 前台启动
/opt/software/hue/build/env/bin/supervisor
#后台启动
sudo nohup /opt/software/hue/build/env/bin/supervisor >> /opt/software/hue/logs/hue.log 2>&1 &
#####停止
#前台启动,使用Ctrl + c来停止
#后台启动 可以用kill停止
#查找 Hue 服务的进程 ID(PID):
ps aux | grep hue
#找到对应PID,然后使用
kill -9 <PID>
|
hue配置元数据为mysql
Hue默认使用SQLite数据库记录相关元数据,这里替换为mysql
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
|
#进入hue conf目录
cd /opt/software/hue/desktop/conf
cp pseudo-distributed.ini.tmpl pseudo-distributed.ini
#编辑pseudo-distributed.ini
vim pseudo-distributed.ini
.......
#针对性修改即可
[desktop] #核心功能的一般配置
http_host=172.16.88.158
http_port=8000
is_hue_4=true
server_user=hue
server_group=hue
default_user=hue
time_zone=Asia/Shanghai
dev=true
app_blacklist=search
[[database]] #数据库名字
engine=mysql
host=172.16.xx.xx
port=3306
user=root
password=xxxxxxx
name=huemetadata #数据库名字
|
在mysql中创建数据库(mysql自行准备,这里不讲解安装,最好不在hue这台机器上)
1
2
3
|
mysql> create database huemetadata;
Query OK, 1 row affected (0.01 sec)
|
在hue对数据库进行数据库初始化操作
1
2
3
4
5
|
cd /opt/software/hue/
# 向hue数据库中写表,执行完后,huemetadata会多出来很多表
build/env/bin/hue syncdb (--noinput看情况确定是否添加,避免交互使用)
build/env/bin/hue migrate
|
然后重新启动hue即可,访问http://ip:8000/ (因为上面将配置文件中的端口改了),这里创建好账号密码后登录即可。

集成
基本上的集成都是通过修改配置文件 /opt/software/hue/desktop/conf/pseudo-distributed.ini来实现的
集成hive
注意由于历史原因,配置部分的名称是[beeswax]。
1
2
3
4
5
6
7
8
9
10
11
12
|
# 文档连接:https://docs.gethue.com/administrator/configuration/connectors/#apache-hive
vim /opt/software/hue/desktop/conf/pseudo-distributed.ini
......
[beeswax]
# HiveServer2 服务器地址
hive_server_host=172.16.88.156
#HiveServer2 Thrift server端口 (默认端口是10000)
hive_server_port=10001
#需要支持在使用 Tez 时发送多个查询(而不是一次最多只发送一个)。您可以使用此设置将其打开
#我这里没有使用Tez,就没有打开
# max_number_of_sessions=3
|
修改完重启即可
集成hadoop
hdfs
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 文档连接:https://docs.gethue.com/administrator/configuration/connectors/#hdfs
vim /opt/software/hue/desktop/conf/pseudo-distributed.ini
......
[hadoop]
# HDFS NameNode的配置
[[hdfs_clusters]]
[[[default]]]
#文件系统uri
fs_defaultfs=hdfs://hdfs://172.16.88.156:8020
#hdfs 的web端口,hadoop3.x的默认是9870,2.x的50070
webhdfs_url=http://172.16.88.156:9870/webhdfs/v1
|
修改hadoop的相关配置文件
1
2
3
4
5
6
7
8
9
10
|
<!--加入一下内容-->
<property>
<name>dfs.webhdfs.enable</name>
<value>true</value>
</property>
<!--安全权限控制的配置,按需求来选择-->
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<!--加入一下内容-->
<!-- Hue WebHDFS proxy user setting -->
<property>
<name>hadoop.proxyuser.hue.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.hue.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.httpfs.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.httpfs.groups</name>
<value>*</value>
</property>
|
1
2
3
4
5
6
7
8
9
10
|
<!--加入一下内容-->
<!-- Hue HttpFS proxy user setting -->
<property>
<name>httpfs.proxyuser.hue.hosts</name>
<value>*</value>
</property>
<property>
<name>httpfs.proxyuser.hue.groups</name>
<value>*</value>
</property>
|
修改完HDFS相关配置后,需要把配置scp给集群中每台机器,重启hadoop服务
然后重启hue
yarn
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 文档连接:https://docs.gethue.com/administrator/configuration/connectors/#apache-yarn
vim /opt/software/hue/desktop/conf/pseudo-distributed.ini
......
[hadoop]
# YARN (MR2)的配置
[[yarn_clusters]]
[[[default]]]
#ResourceManager主机地址
resourcemanager_host=172.16.88.156
resourcemanager_port=8032 #端口
#ResourceManager api url
resourcemanager_api_url=http://172.16.88.156:8088/
proxy_api_url=http://172.16.88.156:8088/
history_server_api_url=http://172.16.88.156:19888/
|
然后重启hue
集成hbase
1
2
3
4
5
6
|
# 文档连接:https://docs.gethue.com/administrator/configuration/connectors/#hbase
vim /opt/software/hue/desktop/conf/pseudo-distributed.ini
......
#以“(name | host: port)”的格式为集群指定以逗号分隔的 HBase Thift 服务器列表
[hbase]
hbase_clusters=(Cluster|172.16.88.156:9090)
|
然后重启hue