1、HUE 编译安装
Hue官方网站:Hue - The open source SQL Assistant for Data Warehouses
Hue官方用户手册:Hue Guide :: Hue SQL Assistant Documentation
官方安装文档:Install :: Hue SQL Assistant Documentation
Hue下载地址:Releases :: Hue SQL Assistant Documentation
Hue的官方并没有编译好的软件包,所有其安装有些繁琐,需要从github上下载源码、安装依赖、编译安装。以下详细讲解Hue下载、编译、安装的操作过程。
本次安装时居于python2.7,python3.x不知为啥安装失败.
注:网上建议说 不要使用root 用户安装(还没验证具体原因)
1.1 下载软件包、上传、解压
yum install unzip
unzip hue-release-4.10.0.zip
1.2 安装环境依赖包
# 需要Python支持(Python 2.7+ / Python 3.6+)
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,其他情况请参考HUE-DEPENDENCIES
网上挺多人都说安装Hue的节点上最好没有安装过MySQL,否则可能有版本冲突,当这里是都在统一个节点上面操作的。
1.3 安装NodeJs和npm
如果缺失NodeJs和npm,还需要安装NodeJs和npm
1)NodeJs下载地址:Index of /dist/v16.13.2/
或者直接在linux下载:wget https://nodejs.org/dist/v16.13.2/node-v16.13.2-linux-x64.tar.xz
2)解压并放入指定目录
tar -xf node-v16.13.2-linux-x64.tar.xz
mv node-v16.13.2-linux-x64 /usr/local/node
3)建立软连接
ln -s /usr/local/node/bin/node /usr/bin/node
ln -s /usr/local/node/bin/npm /usr/bin/npm
4)查看版本
node -v
npm -v
1.4 安装Maven
编译 Hue 还需要 Maven 环境,因此在编译前需要安装 Maven。
下载 apache-maven-3.8.5-bin.tar.gz,上传虚拟机解压缩,添加环境变量(自定义dev_env.sh文件)
(通过查看profile文件,可以看到系统会将/etc/profile.d/目录下的所有.sh
后缀的文件遍历加载到环境变量中)
也可以直接在/etc/profile配置环境变量
vim /etc/profile.d/dev_env.sh
# 添加环境变量
export MAVEN_HOME=/opt/module/apache-maven-3.8.5
export PATH=$PATH:$MAVEN_HOME/bin
source /etc/profile
# 验证安装
mvn --version
注:记得修改maven的settings.xml配置文件
# 也可以创建一个maven目录把repository和apache-maven-3.8.5放在里面
mkdir -p /opt/module/repository
vim /opt/module/apache-maven-3.8.5/conf/settings.xml
<!-- 修改本地仓库路径 -->
<localRepository>/opt/module/repository</localRepository>
<!-- 设置中央仓库 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
1.5 hue编译
# 进入hue源码目录,进行编译。使用 PREFIX 指定安装 Hue 的路径
cd /opt/module/hue-release-4.10.0
# 路径下执行安装(编译完后,会在/opt/module上多了个hue目录)
PREFIX=/opt/module make install
cd /opt/module
如果想把HUE从移动到另外一个地方,由于HUE使用了Python包的一些绝对路径,移动之后则必须执行以下命令:
# 这里不要执行(不需要移动,以下就不要执行)
rm app.reg
rm -r build
make apps
备注:这一步持续的时间比较长,还会从网上下载 jar,需要联网
1.6 修改 Hadoop 的相关配置文件
1)在 hdfs-site.xml 中增加配置
<!-- HUE -->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
2)在 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>
3)在 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服务。
1.7 Hue相关配置
# 进入 Hue 安装目录
cd /opt/module/hue
# 进入配置目录
cd desktop/conf
# 复制一份HUE的配置文件,并修改复制的配置文件
cp pseudo-distributed.ini.tmpl pseudo-distributed.ini
vim pseudo-distributed.ini
# [desktop]
http_host=linux100
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
# Hue默认使用SQLite数据库记录相关元数据,替换为mysql
# [[database]]
engine=mysql
host=linux100
port=3306
user=root
password=123456
name=hue
# 1003行左右,Hadoop配置文件的路径
hadoop_conf_dir=$HADOOP_HOME/etc/hadoop
1.8 创建hue数据库,并初始化数据
mysql -uroot-p123456
mysql> create database hue;
cd /opt/module/hue
# 向hue数据库中写表
build/env/bin/hue syncdb (--noinput看情况添加)
build/env/bin/hue migrate
# 必须添加hue用户,不然无法启动
groupadd hue
useradd -g hue hue
# 将hue源码的用户所有者/组改为hue
chown -R hue:hue /opt/module/hue
1.9 启动/停止Hue
# 启动
/opt/module/hue/build/env/bin/supervisor
# 或者后台启动
sudo nohup /opt/module/hue/build/env/bin/supervisor >> /opt/module/hue/logs/hue.log 2>&1 &
# 如果hue.log权限不够
chmod -R 666 hue.log
一般情况下,直接使用Ctrl + c来停止hue服务
如果将hue在后台运行的话,可以使用kill命令:
sudo ps -ef | grep hue | grep -v grep | awk '{print $2}' | xargs kill -9
# 如果不行,就执行kill
sudo kill -9 port
1.10 访问Hue页面
2、Hue整合Hadoop、Hive、MySQL
修改参数文件 /opt/module/hue/desktop/conf/pseudo-distributed.ini
2.1 集成HDFS、Yarn
[hadoop]
[[hdfs_clusters]]
[[[default]]]
# Enter the filesystem uri
# 查看hadoop的core-site.xml,自己的fs端口号是8020还是9000
fs_defaultfs=hdfs://linux100:8020
# 50070 是hadoop-2.x的端口
# 9870 是hadoop-3.x的端口
webhdfs_url=http://linux100:9870/webhdfs/v1
hadoop_conf_dir=$HADOOP_HOME/etc/hadoop
[[yarn_clusters]]
[[[default]]]
resourcemanager_host=linux100
resourcemanager_port=8032
submit_to=True
resourcemanager_api_url=http://linux100:8088
proxy_api_url=http://linux100:8088
history_server_api_url=http://linux100:19888
2.2 集成Hive
集成Hive需要启动 Hiveserver2 服务,在对应的节点上启动 Hiveserver2
[beeswax]
hive_server_host=linux100
hive_server_port=10000
hive_conf_dir=$HIVE_HOME/conf
2.3 集成MySQL
[librdbms]
[[databases]]
# 注意:##[[mysql]] => [[mysql]];两个##要去掉!
[[[mysql]]]
nice_name="My SQL DB"
name=hue
engine=mysql
host=linux100
port=3306
user=root
password=123456
注:name是数据库名,即database的名称
3、安装过程中、登录后遇到的问题
4、自动升级pip下所有安装包
不是直接就可以使用,根据具体情况调整
# -*- coding:utf-8 -*-
import os
import re
def update():
# 这里就相当于我们在cmd里面输入pip list 展示 pip 安装的所有包
pip_list = os.popen('python2 -m pip list').readlines()
# print(pip_list)
# 由于pip_list里面存储的数据都是pefile (2021.11.5) 这种样子的,但是我们只需要pefile而不要()里面的东西,所以要利用正则表达式将()以及里面的内容去掉
p = re.compile(r'\(.*?\)')
try:
for i in pip_list:
# 利用正则表达式去掉无用的信息
content = p.sub('', i).split()[0]
if 'Package' != content and '----------------------------------' != content:
# 开始更新内容
os.system('python2 -m pip install --upgrade -i https://pypi.douban.com/simple/' + ' ' + content)
except:
pass
if __name__ == '__main__':
update()