Hue可以使用以下两种方式访问HDFS:
- 通过WebHDFS访问HDFS
WebHDFS 具有高速良好的传输数据,因为客户端直接与Hadoop集群内的DataNode通信。 - 通过HttpFS访问HDFS
HttpFS是一种代理服务,适合于与外部系统集成。
注意:
WebHDFS和HttpFS都使用HTTP REST API,因此它们完全可以共同使用,但Hue必须配置使用其中一个。对于HDFS高可用HA部署,必须使用HttpFS。
配置步骤:
-
启用WebHDFS,仅对使用WebHDFS方式访问HDFS
<property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property>
HDFS服务 》 配置 》搜索 dfs.webhdfs.enabled 》勾选 》保存更改
-
HDFS上添加配置
WebHDFS方式
<!-- Hue WebHDFS proxy user setting --> <property> <!-- hue 此处需替换为用户名 --> <name>hadoop.proxyuser.hue.hosts</name> <value>*</value> </property> <property> <!-- hue 此处需替换为用户名 --> <name>hadoop.proxyuser.hue.groups</name> <value>*</value> </property>
HDFS服务 》 配置 》搜索 core-site.xml 》添加配置 》保存更改
HttpFS方式<!-- Hue HttpFS proxy user setting --> <property> <!-- 此处固定为hue --> <name>httpfs.proxyuser.hue.hosts</name> <value>*</value> </property> <property> <!-- 此处固定为hue --> <name>httpfs.proxyuser.hue.groups</name> <value>*</value> </property>
HDFS服务 》 配置 》搜索 httpfs-site.xml 》添加配置 》保存更改
-
确保 core-site.xml 具有以下配置
<property> <name>hadoop.proxyuser.httpfs.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.httpfs.groups</name> <value>*</value> </property>
HDFS服务 》 配置 》搜索 core-site.xml 》添加配置 》保存更改
-
在oozie-site.xml添加配置
<!-- Default proxyuser configuration for Hue --> <property> <name>oozie.service.ProxyUserService.proxyuser.hue.hosts</name> <value>*</value> </property> <property> <name>oozie.service.ProxyUserService.proxyuser.hue.groups</name> <value>*</value> </property>
Oozie服务 》 配置 》搜索 site.xml 》添加配置 》保存更改
-
Hue配置 webhdfs_url
在 hue.ini配置指定 WebHDFS 或 HttpFS的地址
[hadoop] [[hdfs_clusters]] [[[default]]] # Use WebHdfs/HttpFs as the communication mechanism. # WebHdfs ... webhdfs_url=http://FQDN:50070/webhdfs/v1/ # 或 HttpFs ... webhdfs_url=http://FQDN:14000/webhdfs/v1/
Hue服务 》 配置 》搜索 webhdfs_url 》选择对应服务 》保存更改
-
重启集群