Hue 交互工具安装并与 Hdfs、Hive 集成
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
3tar -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
2wget 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
3vim /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
10vim /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
3rsync-script hdfs-site.xml
rsync-script core-site.xml
rsync-script httpfs-site.xml
备注:修改完 HDFS 相关配置后,需要把配置 scp 给集群中每台机器,重启 hdfs 服务。
Hue 配置
1 | # 进入安装目录 |
1 | #[desktop] |
slave21
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
6use 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
2useradd hue -U -m -s /bin/bash
passwd hue
第一次进入需要创建用户和密码
此时会报错,需要进行 hive 的整合
Hue 集成 HDFS、YARN
1 | /opt/servers/hue/desktop/conf |
1 | # [hadoop] -- [[hdfs_clusters]] -- [[[default]]] |
Hue 集成 Hive
集成 Hive 需要启动 Hiveserver2 服务,在 slave2 节点上启动 Hiveserver21
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