特别说明:该专栏文章均来源自微信公众号《大数据实战演练》,欢迎关注!
HUE版本:3.12.0 Ambari:2.6.1.0 HDP:2.6.4.0 前言
Hue是一个用于开发和操作Hadoop的图形化界面。例如操作HDFS上的数据,运行MapReduce Job,执行Hive的SQL语句,浏览HBase数据库,执行Oozie任务等。
该文主要对Hadoop服务的一些配置通过Ambari进行更改,同时也需要修改${HUE_HOME}/desktop/conf/hue.ini配置文件。
打开hue.ini配置文件,将 time_zone=America/Los_Angeles 修改为 time_zone=Asia/Shanghai
打开hue.ini配置文件,修改secret_key值:
# Set this to a random string, the longer the better.
# This is used for secure hashing in the session store.
secret_key=huepeizhianzhuangqitazujian问题

解决办法
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>hadoop.proxyuser.hue.hosts=*
hadoop.proxyuser.hue.groups=*点击确定后,页面上就添加了这两个属性:

保存上述修改的配置,并重启HDFS服务,如图所示:

页面上的自定义core-site属性会自动添加到etc/hadoop/conf/core-site.xml文件


确定default_hdfs_superuser=hdfs
重启HUE服务
当HUE检查配置出现如下问题时:


修改hue.ini文件,找到yarn_clusters选项,根据配置项的名称,主要确定组件所在主机及端口号,如下图所示:

只需要配置zookeeper的各主机节点+端口号即可。

问题集锦
【问题1】

【问题2】
Api 错误:TSocket read 0 bytes
解决方案
安装HBase组件时注意,确保RegionServers和Phoenix查询服务有主机节点,并正常运行。

进入HBase管理界面,配置选项中选择自定义core-site,添加属性,如图所示:

点击“添加属性”,填入:
hbase.regionserver.thrift.http=true
hbase.thrift.support.proxyuser=true
保存配置,并重启HBase服务。
HUE读取HBASE的数据是使用的thrift的方式,默认HBASE的thrift服务没有开启,所以需要手动开启thrift服务。
thrift服务的默认端口为9090,在hbase master所在主机执行如下命令检查thrift是否被启动:
netstat -ntlp | grep 9090如果没有检测到9090端口,则需要手动启动该服务,在hbase master所在主机执行如下命令:
# 开启thrift服务
/usr/hdp/2.6.4.0-91/hbase/bin/hbase-daemon.sh start thrift
# 检测9090端口
netstat -ntlp | grep 9090
如下图所示,根据箭头所指修改配置。9090为thrift服务的端口配置。

当配置HBase服务高可用时,hbase_clusters配置项的值为(Cluster1|172.16.0.142:9090),(Cluster2|172.16.0.147:9090),(Cluster3|172.16.0.148:9090)
修改hue.ini文件的beeswax选项,配置如下图所示:

问题集锦


解决方案
进入hive管理界面:配置选项中点击General,将“Allow all partitions to be Dynamic”的值由“strict”改为“nonstrict”,如图所示:

将true改为false,重启hive。 默认情况下,HiveServer2以提交查询的用户执行查询(true),如果hive.server2.enable.doAs设置为false,查询将以运行hiveserver2进程的用户运行。如图所示:

通过ambari,打开oozie配置面板,选择自定义oozie-site,如图所示:

添加如下配置:
oozie.service.ProxyUserService.proxyuser.hue.hosts=*
oozie.service.ProxyUserService.proxyuser.hue.groups=*将oozie时区改为东八区
在自定义oozie-site内,添加:
oozie.processing.timezone=GMT+0800保存oozie配置修改后,重启oozie服务。
问题
failed to get oozie status

解决办法
修改oozie url链接的值即可,oozie所在的主机+端口号。

记得重启HUE服务。
hue配置Spark需要安装spark livy server组件,默认端口为8998;spark sql的配置依赖于hive,配置如图所示:

还需要配置Spark job history server配置项,该配置项在[[yarn_clusters]]内。
spark_history_server_url=http://172.16.0.147:18080保存配置修改,重启HUE服务。
通过ambari,进入spark管理界面;配置选项中选择高级livy-conf,将“livy.impersonation.enabled”的值修改为false;将“livy.server.csrf_protection.enabled”的值修改为false。如下图所示:

保存配置修改,重启Spark服务。
按照下图所示,配置NOTEBOOK。

其中NOTEBOOK支持很多种语言,假如需要删除掉一种语言,那么可以将该语言注释掉,比如删除impala,如图所示:

重启HUE。
我们可以使用NOTEBOOK内支持的Spark SQL、scala、pySpark来操作使用Spark。
HUE服务默认使用的是Sqlite数据库,但是该数据库当数据量大的时候,容易出现卡死状态,所以现在我们将用户名密码等一些HUE配置数据迁移到Mysql数据库内,具体做法如下:
show databases;
create database hue;
CREATE USER 'hue'@'%' IDENTIFIED BY 'hue';
GRANT ALL PRIVILEGES ON *.* TO 'hue'@'%';
CREATE USER 'hue'@'liuyzh1.xdata' IDENTIFIED BY 'hue';
GRANT ALL PRIVILEGES ON *.* TO 'hue'@'liuyzh1.xdata';
FLUSH PRIVILEGES;
bin/hue syncdb --noinput
bin/hue migrate启动HUE服务,访问ip+8888,用户名和密码首次需要注册。
HUE可以配置RDMS,在HUE页面上,可以对RDMS数据库进行一些sql操作。支持mysql、oralce、postgresql数据库。当前仅介绍sqlite与mysql数据库的配置,如下图所示:
如果想在hue页面上对sqlite数据库进行sql操作,需要进行如下配置,其中sqlite name配置项为hue安装目录下的desktop.db文件的路径。

如果想在hue页面上对mysql数据库进行sql操作,需要进行如下配置,其中上图的mysql name配置项可不写。不写就代表读取mysql所有的数据库。

本文主要讲解了HUE如何与Hadoop生态系统的一些组件进行集成使用,主要是修改的各服务的配置文件及HUE服务的hue.ini配置文件。
本文内容支持HUE与HDFS、YARN、HIVE、HBASE、RDMS、OOZIE、SPARK、NOTEBOOK等服务集成使用。
长按下方二维码,关注更多精彩内容

如果感觉本文对您有帮助,希望点赞或订阅支持一下,您的支持是我坚持写作最大的动力,谢谢!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。