其他分享
首页 > 其他分享> > 编译HUE并接入Ambari管理

编译HUE并接入Ambari管理

作者:互联网

编译HUE并接入Ambari管理

版本信息

Amabri :2.7.4
HDP: 3.1.4
HUE:4.10.0

下载安装包

https://cdn.gethue.com/downloads/hue-4.7.0.tgz

安装依赖

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 nodejs
npm install --global npm

编译

cd ./hue
PREFIX=/usr/share make install

HUE纳入Ambar管理

  1. 在ambari-server机器上执行
VERSION=`hdp-select status hadoop-client | sed 's/hadoop-client - \([0-9]\.[0-9]\).*/\1/'`
rm -rf /var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/HUE
git clone https://github.com/EsharEditor/ambari-hue-service.git /var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/HUE

注意:VERSION的目的是提取的是hdp的版本信息,
/var/lib/ambariserver/resources/stacks/HDP/VERSION/services这个目录里都是ambari管理的工具的文件(hive hdfs yarn等都在这个目录下,以一个个文件夹的形式存在)。直接解压ambari-hue-service-branch-2.0.0.zip到/var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/hue目录下的话,此时hue装的是ambari-hue-service-branch-2.0.0这个目录,此时应该把这个目录下的文件全部移到hue下,而且还要删除这个空的文件。

  1. 修改配置
cd /var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/HUE
sed -i 's/4.6.0/4.10.0/g' metainfo.xml README.md package/scripts/params.py package/scripts/setup_hue.py

例如:download_url = 'http://localhosts/HDP/centos7/2.6.5.0-292/hue/hue-4.7.0.tgz。将第99行hue_install_dir配置项的值改为:/usr/hdp/2.6.5.0-292 ;

Execute(’{0} | xargs wget -O hue.tgz’.format(params.download_url)) 修改为:Execute(‘wget -O hue.tgz {0}’.format(params.download_url))。

  1. 重启ambari-server

通过ambari web 安装hue

从ambari web页面按照正常组件方式安装hue即可。
安装过程中,修改hue元数据存储改为mysql,并登录mysql创建相应database、用户并授权;
在这里插入图片描述

修改HUE配置

以下内容在ambari的hue界面的ADVANCED页面中hue.ini 内搜索修改,不能直接在配置文件中修改,因为ambari管理了hue,hue的配置存储在ambari的元数据中而不是在hue的配置文件中,直接命令行对hue的配置文件中修改不起作用。
在这里插入图片描述
在这里插入图片描述

[[database]]
engine=mysql
host=0.0.0.0
port=3306
user=hue
password=xxx
name=hue
[desktop]
time_zone=Asia/Shanghai
[hadoop]
[[hdfs_clusters]]
webhdfs_url=http://0.0.0.0:14000/webhdfs/v1;
[beeswax]
hive_server_host=0.0.0.0
hive_server_port=10000
use_sasl=true。

修改完配置后,需要初始化hue数据库表,

cd /usr/hdp/2.6.5.0-292/hue/build/env/bin/
/hue syncdb
/hue migrate

或者在hue页面点击:在这里插入图片描述

替换编译后的hue安装包

在安装完成之后,不要点启动,因为此时hue还处于未编译状态无法运行。

可以将在有网络的虚拟机上编译好的hue文件夹直接传过去,覆盖安装目录下的hue,并且新建一个软连接到虚拟机的编译目录(比如说,hue在虚拟机的/usr/share目录下编译的,安装目录是/usr/hdp/3.1.4.0-315/hue,需要复制一份到ambari中定义的安装目录/usr/hdp/3.1.4.0-315/hue,并且ln –s /usr/hdp/3.1.4.0-315 /usr/hdp/share。

安装hadoop-httpfs

由于我们的hdfs启用了HA模式,所以需要开启hadoop-httpfs服务,因为webhdfs不能自动感知hdfs-site.xml里面配的HA高可用信息。 通过yum执行手动安装hadoop-httpfs,修改配置文件并启动httpfs:

yum install -y hadoop-httpfs

echo 'source /etc/profile'>> /etc/hadoop-httpfs/conf/httpfs-env.sh

systemctl start hadoop-httpfs
hdp-select set hadoop-httpfs 3.1.x.x-xxx

修改/usr/hdp/current/hadoop-httpfs/sbin/httpfs.sh

#!/bin/bash # Autodetect JAVA_HOME if not defined
if [ -e /usr/libexec/bigtop-detect-javahome ]; then  
. /usr/libexec/bigtop-detect-javahome
elif [ -e /usr/lib/bigtop-utils/bigtop-detect-javahome ]; then  
. /usr/lib/bigtop-utils/bigtop-detect-javahome
fi

### Added to assist with locating the right configuration directory
export HTTPFS_CONFIG=/etc/hadoop-httpfs/conf
### Remove the original HARD CODED Version reference
export HADOOP_HOME=${HADOOP_HOME:-/usr/hdp/current/hadoop-client}
export HADOOP_LIBEXEC_DIR=${HADOOP_HOME}/libexec

启动HUE

QA

在ambari上安装hue时,提示错误:‘ascii’ codec can’t encode character u’\u2018’

处理:找到报错的源码,在头部加入下面三行代码后,重新安装。
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)

在安装过程中,报错:django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.20: cannot open shared object file: No such file or directory.Did you install mysqlclient or MySQL-python?

在这里插入图片描述
处理:ln -s /export/server/mysql-5.7.22/lib/libmysqlclient.so.20 /usr/lib64/

安装过程提示 keyError,u’hue’

在这里插入图片描述
处理:vi /var/lib/ambari-server/resources/stacks/HDP/3.1/services/HUE/configuration/hue-env.xml添加红字部分

<property>
    <name>hue_user</name>
    <value>hue</value>
    <display-name>Hue User</display-name>
    <property-type>USER</property-type>
    <description>hue user</description>
    <value-attributes>
        <type>user</type>
        <overridable>false</overridable>
        <user-groups>
            <property>
                <type>cluster-env</type>
                <name>user_group</name>
            </property>
            <property>
                <type>hue-env</type>
                <name>hue_group</name>
            </property>
        </user-groups>
    </value-attributes>
    <on-ambari-upgrade add="true"/>
</property>

找不到resourceManager,提示数组下标越界

在这里插入图片描述
处理:
将https://github.com/EsharEditor/ambari-hue-service 换成https://github.com/steven-matison/HDP3-Hue-Service

spark thrift server 找不到

在这里插入图片描述

处理:注释掉package/script/common.py中编译相关部分和package/script/param.py中spark相关部分
common.py
在这里插入图片描述
在这里插入图片描述

启动hue后提示attempt to write a readonly database

处理:
修改hue安装目录的授权,chown –R hue:hue /usr/hdp/3.1.4.0-315/hue

安装httpfs的时候,服务正常启动,端口不存在,在/var/log/hadoop/hdfs/hadoop-root-httpfs-$host.out显示

在这里插入图片描述
处理,在报错所描述的目录中touch 出该文件,文件内容不为空即可。

提示hue无法模拟用户

在这里插入图片描述
处理:在/etc/hadoop/conf目录下新建httpfs-site.xml,填写下列内容,重启httpfs

<!-- Hue HttpFS proxy user setting -->
<configuration>
    <property>
        <name>httpfs.proxyuser.hue.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>httpfs.proxyuser.hue.groups</name>
        <value>*</value>
    </property>
</configuration>

hue无法连接hive,提示Tsocket read 0 bytes

在这里插入图片描述
处理:hue.ini中use_sasl=true (即使集群没有开启kerberos)

标签:HUE,Ambari,httpfs,hadoop,编译,usr,ambari,hue
来源: https://blog.csdn.net/sinat_32176947/article/details/118542350