目录
环境:
Ambari:2.5.0.0
HDP:2.6.4.0
HDP-UTILS:1.1.0.21
Centos:7.0
Hue下载地址:
http://gethue.com/downloads/releases/4.2.0/hue-4.2.0.tgz
下载后,将hue-4.2.0.tgz文件拷贝到本地yum源的/var/www/html/repo/HDP/HDP-2.6.4.0/centos7/2.6.4.0-91/hue目录下(此路径可以通过查看配置源获取cat /etc/yum.repos.d/HDP.repo)。
yum install -y ant
yum install -y maven
yum install -y git
yum install -y gcc gcc-c++ make
yum install -y cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl-gssapi
yum install -y krb5-devel libxml2-devel libxslt-devel
yum install -y python-setuptools
yum install -y openldap-devel python-devel sqlite-devel openssl-devel gmp-devel libffi-devel saslwrapper-devel
yum install -y mysql mysql-devel
yum install -y asciidoc
yum install -y python-simplejson(或者pip install simplejson,本人下载python-simplejson的RPM包进行手动安装rpm -ivh python-simplejson-3.5.3-5.el7.x86_64.rpm)
没安装成功的,不需要管。
# 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
# sudo git clone https://github.com/EsharEditor/ambari-hue-service.git /var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/HUE
上一步下载下来的文件中涉及到的Hue版本与所要安装的Hue版本(4.2)是不一致的。所以需要修改相关文件。
涉及到版本的文件如下:
metainfo.xml
README.md
package/scripts/params.py
package/scripts/setup_hue.py
将里面出现所有的3.11.0替换成4.2.0即可
注意:params.py文件源码中hue/hue-4.2.0.tgz,我再前面添加/变成了/hue/hue-4.2.0.tgz
download_url = 'cat /etc/yum.repos.d/HDP.repo | grep "baseurl" | awk -F \'=\' \'{print $2"/hue/hue-4.2.0.tgz"}\''
不然安装Hue会因路径拼接错误找不到下载位置而安装失败
-
- 修改脚本
个人下载的是hue 4.2.0版本,进行如下修改:
cd /var/lib/ambari-server/resources/stacks/HDP/2.6/services/HUE/package/scripts/
vim common.py
大概从第58行开始,新增了三行执行命令,修改后如下:
因为我们采用了4.2版本,与之前的版本有区别,所以修改vim setup_hue.py,注释掉如下2行代码:
#vim common.py第90行开始,注释掉如下3行:
如果ambari平台密码变更,还需修改默认密码
# cd /var/lib/ambari-server/resources/stacks/HDP/2.6/services/HUE/package/files
# vim configs.sh
修改脚本# vim params.py:186行,将端口14000改为50070
在主节点执行命令:# service ambari-server restart
-
- 通过Ambari界面来安装Hue
重启Ambari Server后就能发现,可安装的服务中有Hue了。
-
- 安装hadoop-httpfs
由于我们的hdfs启用了HA模式,所以需要开启hadoop-httpfs服务,因为webhdfs不能自动感知hdfs-site.xml里面配的HA高可用信息。而HDP是阉割了httpfs的,所以这里需要手动安装,安装也很简单
# sudo yum install hadoop-httpfs
启动HttpFs
# sudo service hadoop-httpfs start(或者/usr/hdp/current/hadoop-httpfs/etc/rc.d/init.d/hadoop-httpfs start)
HDFS组件在自定义core-site配置文件中添加如下参数(类似参数common.py脚本中都有涉及):
hadoop.proxyuser.hue.groups=*
hadoop.proxyuser.hue.hosts=*
hadoop.proxyuser.httpfs.groups=*
hadoop.proxyuser.httpfs.hosts=*
hadoop.proxyuser.livy.groups=*
hadoop.proxyuser.livy.hosts=*
注: livy为Spark提供了REST接口。
HDFS组件在自定义hdfs-site配置文件中添加如下参数:
dfs.namenode.acls.enabled=true
同时确保webhdfs处于开启状态
-
- 配置数据库
安装前,需要在MySQL上创建Hue数据库。
create database hue;
CREATE USER hue@'%'IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON hue.* TO hue@'*' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON hue.* TO hue@'%' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
-
- 选择Hue,安装
1、设置Hue Metasotre使用mysql保存元数据
如下此处也可以配置到sqlite中
2、启用User Sync,暂时使用Linux本地系统用户
- 其他保持默认值,点击“下一步”,一直到完成部署,因涉及到源码编译,安装会等待较长一段时间
- 一切正常时,/usr/local/hue/build/env/bin/目录如下就表明安装成功。
-
- 安装成功,启动失败,手动修改Hue配置文件hue.ini(默认是通过Hue配置界面刷入到pseudo-distributed.ini配置文件中,以下为手动安装操作,仅记录下各组件配置参数)
这个过程中,Hue安装成功,但是启动失败。
配置文件在/usr/local/hue/desktop/conf/目录下。从头到尾配置。需要配置mysql、hive、hdfs、webhdfs、yarn等等。根据自己已有的组件进行修改(hue启动代码是通过界面配置参数刷入到pseudo-distributed.ini文件,此操作仅作参考),具体内容如下所示:
desktop
mysq
hdfs(启用了HA)
yarn(启用了HA配置)
beeswax(hive)
spark
filebrower(可选配)
sorl
zookeeper
oozie
librdbms(可选)
-
- 生成hue数据库表(手动安装操作)
进入/usr/local/hue/build/env/bin/目录,执行如下两条命令:
./hue syncdb
./hue migrate
如果hue数据库中类似如下,那么说明成功:
-
- 启动和登录Hue
如果要启用HBase,启动hue之前,先要启动 hbase thrift service,ambari HDP 默认没有启动hbase thrift,需要自己手动启动。在HBase Master节点上执行:
# /usr/hdp/current/hbase-client/bin/hbase-daemon.sh start thrift
在Ambari界面启动Hue,快速链接上打开Hue界面:http://131.bd:8888/,默认登录用户名:admin,密码:admin
注意:admin用户访问hdfs权限问题,个人在HDFS配置参数dfs.permissions.superusergroup中追加了admin用户。
Hue在部署节点上安装位置:
/var/lib/ambari-agent/cache/stacks/HDP/$VERSION/services/HUE/
-
- 启动Hue失败,报编码问题UnicodeEncodeError: 'ascii' codec can't encode character u'\u201c' in position 3462: ordinal not in range(128)
解决办法:在Hue安装节点上修改sudo.py
vim /usr/lib/python2.6/site-packages/resource_management/core/sudo.py
添加
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
-
- Hue查看HDFS报错Cannot access: /. Note: you are a Hue admin but not a HDFS superuser, "hdfs" or part of HDFS supergroup
修改如下配置参数: