一、前言

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

  • (4)修改编码[w2]

# 在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=*

  • (2)修改hue源码 [w4]

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

  • (4)修改use_sasl [w6]

修改pseudo-distributed.ini,在beeswax的配置下面加上 use_sasl=true

  • (5)修改源码 [w7]

新版的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即可

  • (6)启动thrift [w8]

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

Ambari2.7.4集成Hue4.6.0相关推荐

  1. cdh的集成phoenix安装_环境篇:Kylin3.0.1集成CDH6.2.0

    环境篇:Kylin3.0.1集成CDH6.2.0 Kylin是什么? Apache Kylin™是一个开源的.分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析( ...

  2. (原创) EXCEL集成工具箱V8.0 闪亮登场 (EXCEL插件)

    Excel集成工具箱8.0是 利用VBA(Visual Basic for Applications)语言编写的增强应用型插件.包括160个菜单功能和100个左右自定义函数,集160个工具于一身,但体 ...

  3. MS2108 RGB to USB是一款数字视频和音频采集芯片,内部集成USB 2 0 Device控制器、数据收发模块、数字视频输入处理模块、I2S输入处理模块、音视频处理

    MS2108是一款数字视频和音频采集芯片,内部集成USB 2.0 Device控制器.数据收发模块.数字视频输入处理模块.I2S输入处理模块.音视频处理模块.MS2108可以将数字音视频信号通过USB ...

  4. Ambari2.6.2集成Kerberos

    "坑"说明 如果 HDP 版本是 2.6.5.Ambari 版本是 2.6.2.2 ,切记与 Kerberos 集成时,注意一下 Kerberos 的版本. Kerberos 版本 ...

  5. Eclipse集成PyDev5.2.0开发插件

    引言 在进行Python学习的时候,希望不使用IDLE进行开发,但是其他的IDE如PyCharm可能需要一段短暂时间的上手,因为开发过Java,所以使用能够集成到Eclipse上的PyDev插件进行开 ...

  6. Flink-1.13集成hudi-0.10.0

    把hudi的 hudi-flink-bundle_2.12-0.10.0.jar放到 flink的lib下即可从flink-sql客户端读写hudi表. 下面是完全参考hudi官网的示例 一.下载安装 ...

  7. 4.集成学习之0.Voting

    对比过kaggle比赛上面的top10的模型,除了深度学习以外的模型基本上都是集成学习的产物.集成学习可谓是上分大杀器,今天就跟大家分享在Kaggle或者阿里天池上面大杀四方的数据科学比赛利器-集成学 ...

  8. uniapp集成colorUI uView2.0 Vuex

    文章目录 说明 新建uniapp项目 集成colorUI 集成uView(uniapp插件市场引入) 集成Vuex 另uView集中管理API 请求和响应拦截器也非常优秀 说明 由于经常要用到unia ...

  9. 集成Springfox 3.0.0

    1.在pom.xml添加以下依赖 <!-swagger依赖 --> <dependency><groupId>io.springfox</groupId> ...

最新文章

  1. 【常用工具】常用工具收集
  2. 列联表分析程序,以卢淑华书上的例子为例
  3. The Unique MST
  4. 我的第一个 react redux demo
  5. ES6异步编程: co函数库的含义与用法
  6. CentOS安装之后的系统安全配置
  7. 快速部署PostgreSQL
  8. 教大家如何选购直播声卡
  9. 程序员双十一都该买点啥?
  10. 软件评测师32小时-第一小时 软件测试概论
  11. MATLAB简单解决输出某个数(组)内自然数的阶乘和问题
  12. 基于Python生成Markdown的标题序号
  13. ionic项目打包apk遇到的问题
  14. AI教程 如何在 Illustrator 中创建渐变颜色?
  15. 推荐用户体验设计师必读的5本用户体验书籍
  16. Linux USB 驱动开发实例(七)—— 基于USB 总线的无线网卡浅析
  17. Matlab 色图控制
  18. 传智播客微金所项目实战移动web开发
  19. flash动画文件转html5,Flash动画转HTML5 Smokescreen
  20. linux系统 、Docker(简单了解)

热门文章

  1. 火到不行的零代码都在哪些行业应用?
  2. 《×××颂》突破了千年国画技艺的难点
  3. 周志华 《机器学习》之 第十一章(特征选择与稀疏学习)概念总结
  4. 深入浅出PaddlePaddle函数——paddle.arange
  5. [附源码]JSP+ssm计算机毕业设计高校设备采购审批管理系统r1er5【源码、数据库、LW、部署】
  6. 很伤感的一句话,让人思考...
  7. Linux也有自己的cls命令,clear。但在程序中如何调用昵?
  8. linux小主机用处,怎样用你的Linux主机未来规划的“用途”来决定你的Linux硬件设备...
  9. 【蓝桥杯】最长等差素数数列
  10. Go语言Iris开发框架