Ambari2.7.4集成Hue4.6.0
一、前言
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相关推荐
- cdh的集成phoenix安装_环境篇:Kylin3.0.1集成CDH6.2.0
环境篇:Kylin3.0.1集成CDH6.2.0 Kylin是什么? Apache Kylin™是一个开源的.分布式的分析型数据仓库,提供Hadoop/Spark 之上的 SQL 查询接口及多维分析( ...
- (原创) EXCEL集成工具箱V8.0 闪亮登场 (EXCEL插件)
Excel集成工具箱8.0是 利用VBA(Visual Basic for Applications)语言编写的增强应用型插件.包括160个菜单功能和100个左右自定义函数,集160个工具于一身,但体 ...
- MS2108 RGB to USB是一款数字视频和音频采集芯片,内部集成USB 2 0 Device控制器、数据收发模块、数字视频输入处理模块、I2S输入处理模块、音视频处理
MS2108是一款数字视频和音频采集芯片,内部集成USB 2.0 Device控制器.数据收发模块.数字视频输入处理模块.I2S输入处理模块.音视频处理模块.MS2108可以将数字音视频信号通过USB ...
- Ambari2.6.2集成Kerberos
"坑"说明 如果 HDP 版本是 2.6.5.Ambari 版本是 2.6.2.2 ,切记与 Kerberos 集成时,注意一下 Kerberos 的版本. Kerberos 版本 ...
- Eclipse集成PyDev5.2.0开发插件
引言 在进行Python学习的时候,希望不使用IDLE进行开发,但是其他的IDE如PyCharm可能需要一段短暂时间的上手,因为开发过Java,所以使用能够集成到Eclipse上的PyDev插件进行开 ...
- Flink-1.13集成hudi-0.10.0
把hudi的 hudi-flink-bundle_2.12-0.10.0.jar放到 flink的lib下即可从flink-sql客户端读写hudi表. 下面是完全参考hudi官网的示例 一.下载安装 ...
- 4.集成学习之0.Voting
对比过kaggle比赛上面的top10的模型,除了深度学习以外的模型基本上都是集成学习的产物.集成学习可谓是上分大杀器,今天就跟大家分享在Kaggle或者阿里天池上面大杀四方的数据科学比赛利器-集成学 ...
- uniapp集成colorUI uView2.0 Vuex
文章目录 说明 新建uniapp项目 集成colorUI 集成uView(uniapp插件市场引入) 集成Vuex 另uView集中管理API 请求和响应拦截器也非常优秀 说明 由于经常要用到unia ...
- 集成Springfox 3.0.0
1.在pom.xml添加以下依赖 <!-swagger依赖 --> <dependency><groupId>io.springfox</groupId> ...
最新文章
- 【常用工具】常用工具收集
- 列联表分析程序,以卢淑华书上的例子为例
- The Unique MST
- 我的第一个 react redux demo
- ES6异步编程: co函数库的含义与用法
- CentOS安装之后的系统安全配置
- 快速部署PostgreSQL
- 教大家如何选购直播声卡
- 程序员双十一都该买点啥?
- 软件评测师32小时-第一小时 软件测试概论
- MATLAB简单解决输出某个数(组)内自然数的阶乘和问题
- 基于Python生成Markdown的标题序号
- ionic项目打包apk遇到的问题
- AI教程 如何在 Illustrator 中创建渐变颜色?
- 推荐用户体验设计师必读的5本用户体验书籍
- Linux USB 驱动开发实例(七)—— 基于USB 总线的无线网卡浅析
- Matlab 色图控制
- 传智播客微金所项目实战移动web开发
- flash动画文件转html5,Flash动画转HTML5 Smokescreen
- linux系统 、Docker(简单了解)
热门文章
- 火到不行的零代码都在哪些行业应用?
- 《×××颂》突破了千年国画技艺的难点
- 周志华 《机器学习》之 第十一章(特征选择与稀疏学习)概念总结
- 深入浅出PaddlePaddle函数——paddle.arange
- [附源码]JSP+ssm计算机毕业设计高校设备采购审批管理系统r1er5【源码、数据库、LW、部署】
- 很伤感的一句话,让人思考...
- Linux也有自己的cls命令,clear。但在程序中如何调用昵?
- linux小主机用处,怎样用你的Linux主机未来规划的“用途”来决定你的Linux硬件设备...
- 【蓝桥杯】最长等差素数数列
- Go语言Iris开发框架