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.enabledname>
<value>truevalue>
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等服务集成使用。
码字不易,如果您觉得文章写得不错,请扫码关注公众号支持作者~ 您的关注是我写作的最大动力?