参考文档
CDH介绍hadoop组件的端口: ​​​ https://www.cloudera.com/documentation/enterprise/latest/topics/cdh_ig_ports_cdh5.html​​​ Hadoop官方介绍web hdfs: ​​ http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-hdfs/WebHDFS.html​​ Hadoop官方介绍httpfs : ​​ http://hadoop.apache.org/docs/r2.6.5/hadoop-hdfs-httpfs/index.html​​ web hdfs和httpfs的对比

一、web hdfs

1、介绍
Web HDFS是HortonWorks开发的,然后捐给了Apache,是HDFS的REST API。WebHDFS是一个内置HDFS的REST API。 它不需要任何进一步的安装,但提供的文件访问支持较简单,如果集群未做HA,那么是优先选择,其中默认50070是http服务的端口。

2、端口
默认配置: dfs.datanode.http.address 50070
安全配置: dfs.datanode.http.address 1006

3、示例
(1)无安全认证(​​​http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-hdfs/WebHDFS.html#Open_and_Read_a_File​​​)
curl -i -L "http://<HOST>:50075/webhdfs/v1/<PATH>?op=OPEN
[&offset=<LONG>][&length=<LONG>][&buffersize=<INT>]"

(2)kerberos安全认证
(​​​http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-hdfs/WebHDFS.html#HDFS_Configuration_Options​​)

curl -i --negotiate -u : "http://<HOST>:1006/webhdfs/v1/<PATH>?op=..."

二、HttpFS

1、介绍
HttpFS是Cloudera开发的,也捐给了Apache。HttpFS是HDFS一个独立的服务,若使用需要手动安装(CDH中安装HDFS时将HttpFS勾选上即可)。提供的文件访问支持较好,如果集群做了HA,那么HttpFS Server将不是它的瓶颈,性能更好!是http服务的优先选择。默认提供服务的端口是14000.

2、端口
默认配置: hdfs.httpfs.http.port 14000
由于它不是hdfs内置的组件,所以不管是否添加安全认证,只要我们不更改默认端口,那么端口都不会发生变化!

3、示例
(1)无安全认证(​​​http://hadoop.apache.org/docs/r2.6.5/hadoop-hdfs-httpfs/index.html​​​)
curl ​​ http://httpfs-host:14000/webhdfs/v1/user/foo/README.txt​​ curl ​​ http://httpfs-host:14000/webhdfs/v1/user/foo?op=list​​​ curl -X POST ​​ http://httpfs-host:14000/webhdfs/v1/user/foo/bar?op=mkdirs​

(2)有安全认证(​​http://hadoop.apache.org/docs/r2.6.5/hadoop-hdfs-httpfs/UsingHttpTools.html​​​)
$ kinit
Please enter the password for tucu@LOCALHOST:
$ curl --negotiate -u foo "http://<HTTPFS_HOST>:14000/webhdfs/v1?op=homedir"
Enter host password for user 'foo':

三、选择

一般来说两个都可以使用,而且差别不大。但若集群配置了HA,那就最好使用HttpFS了,因为namenode的地址一直在变化,我们是不可能也随时修改脚本里的请求地址的,故在这种情况下直接写HttpFS Server的地址好了。