HUE--数据交互工具

02 Feb 2021

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

一句话总结:Hue是一个友好的界面集成框架,可以集成我们各种学习过的以及将要 学习的框架,一个界面就可以做到查看以及执行所有的框架。
类似的产品还有 Apache Zeppelin。

##

Hue编译安装

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

1. 移除本地mysql,如果有

# 查询是否安装了  
mysql   
rpm -aq | grep mysql  
  
# 删除mysql。-e 删除指定的套件;--nodeps 不验证套件的相互关联性   
rpm -e --nodeps mysql-xxx  

2. 下载软件包

下载软件包、上传、解压(hue-release-4.3.0.zip、apache-maven-3.6.3- bin.tar.gz)

yum install unzip  
unzip hue-release-4.3.0.zip  

3. 安装依赖

# 需要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 rsync  

备注:
以上依赖仅适用CentOS/RHEL 7.X,其他情况请参考https://docs.gethue.com/administrator/installation/dependencies/
安装Hue的节点上最好没有安装过MySQL,否则可能有版本冲突 安装过程中需要联网,网络不好会有各种奇怪的问题

4. 安装Maven

编译 Hue 还需要 Maven 环境,因此在编译前需要安装 Maven。
下载 apache-maven-3.6.3-bin.tar.gz,上传虚拟机解压缩,添加环境变量

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  

5. 编译

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

# 进入 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  

6. 修改 Hadoop 配置文件

在 hdfs-site.xml 中增加配置

<!-- HUE -->  
<property>  
        <name>dfs.webhdfs.enabled</name>  
        <value>true</value>  
</property>  
  
<property>  
         <name>dfs.permissions.enabled</name>  
        <value>false</value>  
</property>  

在 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 文件,加入配置

<configuration>  
<!-- HUE -->  
        <property>  
                <name>httpfs.proxyuser.hue.hosts</name>  
                <value>*</value>  
        </property>  
        <property>  
                <name>httpfs.proxyuser.hue.groups</name>  
                <value>*</value>  
        </property>  
</configuration>  

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

7. Hue配置

# 进入 Hue 安装目录  
cd /opt/lagou/servers/hue  
  
# 进入配置目录  
cd desktop/conf  
  
# 复制一份HUE的配置文件,并修改复制的配置文件  
cp pseudo-distributed.ini.tmpl pseudo-distributed.ini vi pseudo-distributed.ini  
# [desktop]  
  http_host=centos7-2  
  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=centos7-3  
  port=3306  
  user=hive  
  password=12345678  
  name=hue  
  
# 1003行左右,Hadoop配置文件的路径   
hadoop_conf_dir=/opt/lagou/servers/hadoop-2.9.2/etc/hadoop  
# 在mysql中创建数据库hue,用来存放元数据   
mysql -uhive -p12345678  
mysql> create database hue;  
  
# 初始化数据库  
cd /opt/lagou/servers/hue/build/env/bin  
./hue syncdb  
./hue migrate  

8. 启动 Hue 服务

# 增加 hue 用户和用户组   
groupadd hue   
useradd -g hue hue  
  
# 在hue安装路径下执行   
  
build/env/bin/supervisor  

在浏览器中输入:http://centos7-2:8000,可以看见以下画面,说明安装成功。 第一次访问的时候,需要设置超级管理员用户和密码。记住它(hue/123456)。用户必须使用hue,密码随意

Hue整合Hadoop、Hive

修改参数文件 /opt/lagou/servers/hue/desktop/conf/pseudo-distributed.ini

1. 集成HDFS、YARN

# 211 行。 没有安装 Solr,禁用,否则一直报错   
app_blacklist=search  
  
# [hadoop] -- [[hdfs_clusters]] -- [[[default]]]   
# 注意端口号。下面语句只要一个  
# fs_defaultfs=hdfs://centos7-1:8020 fs_defaultfs=[hdfs://centos7-1:9000](hdfs://centos7-1:9000)  
webhdfs_url=[http://centos7-1:50070/webhdfs/v1](http://centos7-1:50070/webhdfs/v1)  
  
# 211 行  
hadoop_conf_dir=/opt/lagou/servers/hadoop-2.9.2/etc/hadoop  
  
# [hadoop] -- [[yarn_clusters]] -- [[[default]]]  
resourcemanager_host=centos7-3  
resourcemanager_port=8032  
submit_to=True  
resourcemanager_api_url=http://centos7-3:8088  
proxy_api_url=http://centos7-3:8088  
history_server_api_url=http://centos7-3:19888  

2. 集成Hive

集成Hive需要启动 Hiveserver2 服务,在centos7-3节点上启动 Hiveserver2

# [beeswax]  
hive_server_host=centos7-3  
hive_server_port=10000  
hive_conf_dir=/opt/lagou/servers/hive-2.3.7/conf  

3. 集成MySQL

# [librdbms] -- [[databases]] -- [[[mysql]]];1639行  
  
# 注意:1639行原文: ##[[mysql]] => [[mysql]];两个##要去掉!  
  
[[[mysql]]]  
  nice_name="My SQL DB"  
  name=hue  
  engine=mysql  
  host=centos7-3  
  port=3306  
  user=hive  
  password=12345678  

备注:name是数据库名,即 database 的名称

4. 重启Hue服务