Ambari2.7.4集成Hue4.6.0

  • Post author:
  • Post category:其他


一、前言

Hue是一个开源的Apache Hadoop UI系统,由Cloudera Desktop演化而来,最后Cloudera公司将其贡献给Apache基金会的Hadoop社区,它是基于Python Web框架Django实现的。

通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job,执行Hive的SQL语句,浏览HBase数据库等等。

二、版本信息


Ambari:2.7.4


HDP:3.1.4


HUE:4.6.0   下载地址:

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


ambari-hue-service 集成插件  下载地址:

https://github.com/lijufeng2016/ambari-hue-service


全文参考

https://blog.csdn.net/u013289115/article/details/104757902

,感谢这位大佬提供的插件,但是有些步骤不够详细也比较乱,弄了两天才搞成功。按照自己的思路重新整理了一下。

二、环境准备

1、hue的master节点上执行,为编译环境做准备


yum install sqlite-devel  libxslt-devel.x86_64 python-devel openldap-devel asciidoc cyrus-sasl-gssapi  libxml2-devel.x86_64 gcc gcc-c++ kernel-devel openssl-devel gmp-devel libffi-devel



注意:一定要全部yum安装成功,不然后面编译hue会失败。

#安装新版的nodejs


curl –silent –location https://rpm.nodesource.com/setup_10.x | bash –


yum install -y nodejs

2、所有机器上创建用户和组


useradd -g hue hue

3、提前在mysql创建好hue的库并授权


create database hue character set utf8;


CREATE USER ‘hue’@’%’IDENTIFIED BY ‘Siger_123’;


grant ALL PRIVILEGES ON *.* TO ‘hue’@’%’;


CREATE USER ‘hue’@’localhost’IDENTIFIED BY ‘Siger_123’;


grant ALL PRIVILEGES on *.* to hue@’localhost’ identified by ‘Siger_123’;


FLUSH PRIVILEGES;

4、提前建好hue在hdfs的HOME目录


su hdfs


hadoop fs -mkdir /user/hue


hadoop fs -chown hue:hue /user/hue

三、搭建

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


sudo git clone https://github.com/lijufeng2016/ambari-hue-service.git /var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/HUE

2、拷贝安装包


mkdir /var/www/html/ambari/HDP/centos7/3.1.4.0-315/hue/

将hue-4.6.0.tgz安装包放在hue目录下

3、修改代码和环境配置



  • (1)package/files/configs.sh




    文件


cd /var/lib/ambari-server/resources/stacks/HDP/3.1/services/HUE/package/files


vim configs.sh



  • (2)package/scripts/params.py文件

第32行 download_url 改成你自己的地址,可以跟hdp的本地仓库放一起

第40行 ambari_server_hostname 改成你自己的地址


http://172.8.10.100/ambari/HDP/centos7/3.1.4.0-315/hue/hue-4.6.0.tgz



  • (3)


    修改ignore_groupsusers_create

    [w1]


cd /var/lib/ambari-server/resources/scripts


python configs.py -u admin -p admin -n CloudTest -l siger-master.test.com -t 8080 -a get -c cluster-env |grep -i ignore_groupsusers_create


python configs.py -u admin -p admin -n CloudTest -l siger-master.test.com -t 8080 -a set -c cluster-env -k ignore_groupsusers_create -v true

# 在hue的安装节点上:


vim /usr/lib/ambari-agent/lib/resource_management/core/sudo.py

# 添加如下代码:


import sys


reload(sys)


sys.setdefaultencoding(‘utf-8’)

4、部署安装

# 重启ambari


ambari-server restart

# ambari界面操作

界面左侧 >> services >> Add service >> Hue >> NEXT >> 选择Hue Server >> NEXT >> 配置:数据库配置,这里选了mysql:


HUE DATABASES:


HUE USER INFO:


HUE SERVICE MOOULE:


#


安装成功

5、编译hue


cd /usr/hdp/3.1.4.0-315/hue/


make apps

6、修改配置


  • (1)修改hue的pseudo-distributed.ini 配置


    [w3]


allowed_hosts=*


vim /usr/hdp/3.1.4.0-315/hue/desktop/core/src/desktop/lib/conf.py

第293行改为:


if raw is None or raw==”:

  • (3)修改host和port

    [w5]


#


把hiveserver2的host和端口号手动设置一下



修改hue-hive-site



修改pseudo-distributed.ini


修改pseudo-distributed.ini


,在beeswax的配置下面加上 use_sasl=true

新版的hue4.6.0与hdp3.1.4这种双新组合往往自带坑位,网上也找不到任何答案,经过一步步推测排查,首先可以确定的是后端返回字段的时候有问题,与之相关的是hive相关的包,经过漫长的一步一步排查,确定到了哪一行代码。


vim /usr/hdp/3.1.4.0-315/hue/apps/beeswax/src/beeswax/server/hive_server2_lib.py

118行和119行的2改成1即可

hdp3中,hbase的thrift默认不开启,需要手动在各个Hmaster节点启动,注意,一定要使用hbase用户启动thrift,而不是thrift2!!否则后面还会有问题,上代码

su hbase


/usr/hdp/current/hbase-master/bin/hbase-daemon.sh start thrift



建议把启动thrift的命令写到启动hbase master的脚本里,这样就不用每次手动起了。

7、启动

#

改完重启,终于看到人样的页面了,创建hue账号,第一次任意设置,我这里设置成admin/admin,




[w1]


不修改,安装时报错:


KEY ERROR -u’hue’


keyError -u’hue’


Error: Error: Unable to run the custom hook script [‘/usr/bin/python’, ‘/var/lib/ambari-agent/cache/stack-hooks/before-ANY/scripts/hook.py’, ‘ANY’, ‘/var/lib/ambari-agent/data/command-303.json’, ‘/var/lib/ambari-agent/cache/stack-hooks/before-ANY’, ‘/var/lib/ambari-agent/data/structured-out-303.json’, ‘INFO’, ‘/var/lib/ambari-agent/tmp’, ‘PROTOCOL_TLSv1_2’, ”]



[w2]


不修改,安装时

报错:

UnicodeEncodeError: ‘ascii’ codec can’t encode character u’\u201c’ in position 3462: ordinal not in range(128)

因为/usr/lib/python2.7/site-packages/resource_management/core/sudo.py文件在新版本中不适用!需要修改编码



[w3]


不修改,安装时

报错:

Invalid HTTP_HOST header: ‘siger-master.test.com:8888’. You may need to add u’ siger-master.test.com’ to ALLOWED_HOSTS.


[w4]

不修改,访问hue时会报:

加载数据库时出错


[w5]


端口号当成字符串输入了,会报错:



%d format: a number is required, not str


[w6]

不修改,会报错:

TSocket read 0 bytes (code THRIFTTRANSPORT): TTransportException(‘TSocket read 0 bytes’,)


[w7]


不修改,会报错:


显示无列



[w8]

不启动,查看hbase报错,

无法联系到 HBase Thrift 1 服务器:Could not connect to siger-master.test.com:9090



版权声明:本文为qq_21153619原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。