HDFS支持兩種RESTful接口:WebHDFS和HttpFS。
WebHDFS默認端口號為50070,HttpFS默認端口號為14000。
默認啟動WebHDFS而不會啟動HttpFS,而HttpFS需要通過sbin/httpfs.sh來啟動。
WebHDFS模式客戶端和DataNode直接交互,HttpFS是一個代理模式。對於Hue,如果HDFS是HA方式部署的,則只能使用HttpFS模式。
HttpFS是獨立的模塊,有自己的配置文件httpfs-site.xml、環境配置文件httpfs-env.sh和日志配置文件httpfs-log4j.properties,需獨立啟動。
而WebHDFS是HDFS內置模塊,無自己的配置文件、環境配置文件和日志配置文件,隨HDFS而啟動。
WebHDFS配置,在core-site.xml中加入以下內容:
<property>
<name>hadoop.proxyuser.$username.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.$groupname.groups</name>
<value>*</value>
</property>
“$username”的值為啟動HDFS的用戶名,“$groupname”為啟動HDFS的用戶組名。
HttpFS配置,在core-site.xml中加入以下內容:
<property>
<name>hadoop.proxyuser.httpfs.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.httpfs.groups</name>
<value>*</value>
</property>
對於HttpFS,還需要在httpfs-site.xml中加入以下內容:
<property>
<name>httpfs.proxyuser.$username.hosts</name>
<value>*</value>
</property>
<property>
<name>httpfs.proxyuser.$groupname.groups</name>
<value>*</value>
</property>
“$username”的值為啟動HttpFS的用戶名,“$groupname”為啟動HttpFS的用戶組名。
環境配置文件httpfs-env.sh可以不用修改,直接使用默認的值,當使用sbin/httpfs.sh來啟動HttpFS時會屏幕輸出HTTPFS_HOME等值。