HUE版本:3.12.0

HDP版本:2.6.4

前言

通过浏览器访问ip:8888登陆HUE界面,首次登陆会提示你创建用户,这里使用账号/密码:hue/hue登陆。

一、WebHDFS与HttpFS

在配置HUE访问NameNode HA之前,我们先来了解一下WebHDFS与HttpFS:

  • 两者都是基于REST的HDFS API,使得一个集群外的host可以不用安装HADOOP和JAVA环境就可以对集群内的HADOOP进行访问,并且client不受语言的限制。
  • WebHDFS是HDFS内置的、默认开启的一个服务,而HttpFS是HDFS一个独立的服务,若使用需要手动安装(CDH中安装HDFS时将HttpFS勾选上即可;HDP中需要用户手动安装)。
  • WebHDFS是HortonWorks开发的,然后捐给了Apache;而HttpFS是Cloudera开发的,也捐给了Apache。

两者主要差别

WebHDFS是HDFS内置的组件,已经运行于NameNode和DataNode中。对HDFS文件的读写,将会重定向到文件所在的DataNode,并且会完全利用HDFS的带宽。HttpFS是独立于HDFS的一个服务。对HDFS文件的读写,将会通过它进行中转,它能限制带宽占用。

如果访问大文件,HttpFS服务本身有可能变成瓶颈。如果你想限制客户端流量,以防其过度占用集群的带宽时,那可以考虑HttpFS。

总结

WebHDFS与HttpFS各有利弊,都能满足基本需要。

虽然两者都支持HTTP REST API,但是Hue只能配置其中一种方式;对于HDFS HA的部署模式,只能使用HttpFS。因为无论NameNode所在ip如何变化,HUE通过HttpFS服务都能够访问到HDFS。

二、安装HttpFS

HDP默认是没有安装HttpFs的,所以这里需要手动安装:

1
yum install -y hadoop-httpfs

开启HttpFS:

1
service hadoop-httpfs start

关闭HttpFS:

1
service hadoop-httpfs stop

查看HttpFS状态:

1
service hadoop-httpfs status

HttpFS默认端口为14000,可使用netstat命令查看:

1
netstat -ntlp | grep 14000

三、修改配置文件

1. 修改HDFS配置

在ambari页面上,打开HDFS的”自定义core-site”,点击添加属性,输入

1
2
hadoop.proxyuser.httpfs.hosts=*
hadoop.proxyuser.httpfs.groups=*

如图所示:

2. 检查HDFS配置

确保WebHDFS保持开启状态,如下图所示:

确保自定义core-site里面有hadoop.proxyuser.hue.groupshadoop.proxyuser.hue.hosts属性,如下图所示:

如果没有的话,就仿照上述的做法添加到自定义core-site

3. 修改hue.ini

如上图所示,其中fs_defaultfs的值要与HDFS上的配置值一致,如下图所示:

webhdfs_url的值是HttpFS所在主机+端口号,比如:http://liuyzh1.xdata:14000/webhdfs/v1

四、启动HUE

执行以下命令,启动HUE:

1
/usr/hdp/2.6.4.0-91/hue/build/env/bin/supervisor

通过浏览器访问ip:8888登陆HUE界面,首次登陆会提示你创建用户,这里使用账号/密码:hue/hue登陆。

访问我们的文件系统,如下图所示:

成功。

五、总结

  • 在Hue中配置webhdfs_url使用HttpFS服务,在集群启用高可用后必须选择使用HttpFS服务。
  • 无论NameNode是否处于HA状态,HUE都可使用HttpFS服务来访问HDFS。

扩展链接