HUE
第一部分Hue概述
Hue(Hadoop User Experience)是一个开源的 Apache Hadoop UI系统,最早是由 Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于PythonWeb框架Django实现的。通过使用Hue可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduceJob等等。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是一个友好的界面集成框架,可以集成我们各种学习过的以及将要学习的框架,一个界面就可以做到查看以及执行所有的框架。
HUE
官方网址:https://gethue.com/
Hue的安装并不是那么简单,官方并没有编译好的软件包,需要从github上下载源码、安装依赖、编译安装。以下详细讲解Hue下载、编译、安装的操作过程。
安装Hue的节点上最好没有安装过MySQL,否则可能有版本冲突,这里选择将Hue安装在slave1上。
下载软件包
1.hue-release-4.10.0.tar.gz
2.apache-maven-3.8.3-bin.tar.gz
https://dlcdn.apache.org/maven/maven-3/3.8.3/binaries/apache-maven-3.8.3-bin.tar.gz
将软件包下载至 /opt/software
解压至/opt/servers
1 2 3
| tar -zxvf apache-maven-3.8.3-bin.tar.gz -C /opt/servers tar -zxvf hue-release-4.10.0.tar.gz -C /opt/servers # 检查软件包的完整性
|
安装必要依赖
具体参见:https://docs.gethue.com/administrator/installation/dependencies/#centosrhel
Python2.7以上
1 2
| # CentOS/RHEL 系统所需依赖 yum -y 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
|
Node.js 安装
1 2
| wget https://nodejs.org/dist/v16.13.0/node-v16.13.0-linux-x64.tar.xz tar -xvf node-v16.13.0-linux-x64.tar.xz
|
Node.js 环境变量
1 2 3
| vim /etc/profile # Node.js export PATH=$PATH:/opt/software/node-v16.13.0/bin
|
设置 Maven 环境变量
编译 Hue 还需要 Maven 环境,因此在编译前需要安装 Maven。
1 2 3 4 5 6 7 8 9 10
| vim /etc/profile
# 添加环境变量 # MAVEN export MAVEN_HOME=/opt/software/apache-maven-3.8.3 export PATH=$PATH:$MAVEN_HOME/bin
# 验证安装 source /etc/profile mvn -v
|
编译 Hue
:进入hue源码目录,进行编译。使用 PREFIX 指定安装 Hue 的路径
1 2 3 4
| # 进入源码目录 cd /opt/software/hue-release-4.10.0
PREFIX=/opt/servers make install
|
注意:编译需要下载 Jar 包所以要保持联网状态,编译过程可能需要持续30分钟

修改 Hadoop 配置
在 hdfs-site.xml 中增加配置
1 2 3 4 5 6 7 8 9 10
| <!-- HUE --> <property> <!-- HDFS Web 服务 --> <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
| <!-- 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
| <!--HUE--> <property> <name>httpfs.proxyuser.hue.hosts</name> <value>*</value> </property> <property> <name>httpfs.proxyuser.hue.groups</name> <value>*</value> </property>
|
分发到其他节点中
1 2 3
| rsync-script hdfs-site.xml rsync-script core-site.xml rsync-script httpfs-site.xml
|
备注:修改完HDFS相关配置后,需要把配置 scp 给集群中每台机器,重启hdfs服务。
Hue 配置
1 2 3 4 5 6 7 8 9
| # 进入安装目录 cd /opt/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=slave1 http_port=8000 time_zone=Asia/shanghai dev=true server_user=hue server_group=hue default_user=hue
#[[database]]。Hue默认使用SQLite数据库记录相关元数据,替换为mysql engine=mysql host=slave2 port=3306 user=hive password=0000 # 增加一行 数据库名称 name=hue
# 211行左右。app黑名单,禁用solr,规避报错 app_blacklist=search
# 1003行,Hadoop配置文件的路径 hadoop_conf_dir=/opt/servers/hadoop-2.10.1/etc/hadoop
|
slave2
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 在mysq1中创建数据库hue,用来存放元数据 mysql -uhive -p0000 mysql> create database hue; # 初始化数据库 pwd /opt/servers/hue/
# 如果是mysql8的版本需要修改密码加密方式为旧版 build/env/bin/hue syncdb
build/env/bin/hue migrate # 检查数据 mysql> show tables;
|


修改mysql加密方式
1 2 3 4 5 6
| use mysql; select user,plugin from user where user='root';
alter user 'hive'@'%' identified with mysql_native_password by '0000';
flush privileges;
|
启动服务
1
| build/env/bin/supervisor
|
如果启动时出现以下异常

则是没有hue这个用户
1 2
| useradd hue -U -m -s /bin/bash passwd hue
|

访问地址
http://slave1:8000/
第一次进入需要创建用户和密码

此时会报错,需要进行hive的整合
Hue 集成 HDFS、YARN
1 2 3
| /opt/servers/hue/desktop/conf
vim pseudo-distributed.ini
|
1 2 3 4 5 6 7 8 9 10 11 12
| # [hadoop] -- [[hdfs_clusters]] -- [[[default]]] # 注意端口号。 fs_defaultfs=hdfs://master:9000 webhdfs_ur1=http://master:50070/webhdfs/v1
# [hadoop] -- [[yarn_clusters]] -- [[[default]]] resourcemanager_host=slave2 resourcemanager_port=8032 submit_to=True resourcemanager_api_url=http://slave2:8088 proxy_api_ur1=http://slave2:8088 history_server_api_url=http://slave2:19888
|
Hue 集成 Hive
集成 Hive 需要启动 Hiveserver2 服务,在 slave2 节点上启动 Hiveserver2
1 2 3 4 5 6 7
| #[beeswax] hive_server_host=slave2 hive_server_port=10000 hive_conf_dir=/opt/servers/hive-2.3.9/conf
# 注意到注释上说,11是hive3.0的 thrift_version=7
|
Hue 集成MySQL
#[librdbms]–[[databases]]–[[[mysq]]]];1922行
#注意:1922行原文:##[[mysql]]=>[[mysql]];两个##要去掉!
1 2 3 4 5 6 7 8
| [[[mysq]]]] nice_name="My SQL DB" name=hue engine=mysql host=slave2 port=3306 user=hive password=0000
|
注意:name是database_name