编译HUE并接入Ambari管理
作者:互联网
编译HUE并接入Ambari管理
- 版本信息
- 下载安装包
- 安装依赖
- 编译
- HUE纳入Ambar管理
- 通过ambari web 安装hue
- 修改HUE配置
- 替换编译后的hue安装包
- 安装hadoop-httpfs
- 启动HUE
- QA
- 在ambari上安装hue时,提示错误:'ascii' codec can't encode character u'\u2018'
- 在安装过程中,报错: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?
- 安装过程提示 keyError,u'hue'
- 找不到resourceManager,提示数组下标越界
- spark thrift server 找不到
- 启动hue后提示attempt to write a readonly database
- 安装httpfs的时候,服务正常启动,端口不存在,在/var/log/hadoop/hdfs/hadoop-root-httpfs-$host.out显示
- 提示hue无法模拟用户
- hue无法连接hive,提示Tsocket read 0 bytes
版本信息
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管理
- 在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下,而且还要删除这个空的文件。
- 修改配置
- 修改版本信息
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
- 修改/var/lib/ambari-server/resources/stacks/HDP/2.6/services/HUE/ambari-hue-service-branch-2.0.0/package/scripts/params.py中第33行download_url配置改为实际hue yum源地址
例如: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 ;
- 修改package/scripts/common.py中第57行将改行代码
Execute(’{0} | xargs wget -O hue.tgz’.format(params.download_url)) 修改为:Execute(‘wget -O hue.tgz {0}’.format(params.download_url))。
- 注释第87-89行关于httpfs的配置内容;
- 修改package/files/configs.sh中第39行PASSWD配置项,根据ambari web实际登录密码修改该配置
- 重启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