Centos7上安装配置Hue

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页面

http://linux100:8000/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、安装过程中、登录后遇到的问题

Hue相关的问题点统一整理到另一篇文章:Hue安装、或操作过程中遇到的问题_ykqidev的博客-CSDN博客[Hue-001] 编译Hue时报错,File “/usr/bin/yum“, line 30 except KeyboardInterrupt解决方案:主要是系统自带的python2.7,默认环境是python,你安装python3.x后,更改默认/usr/bin/python的软引用为python3.x导致的。直接修改/usr/bin/yum文件中的第一行为 #!/usr/bin/python2.7[Hue-002] Hue启动报错,OperationalError: attempt to whttps://blog.csdn.net/YKQi_/article/details/124174261

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值