1. 程式人生 > >【轉載】WebHDFS與HttpFS的使用

【轉載】WebHDFS與HttpFS的使用

WebHDFS

介紹

提供HDFS的RESTful介面,可通過此介面進行HDFS檔案操作。

安裝

WebHDFS服務內建在HDFS中,不需額外安裝、啟動。

配置

需要在hdfs-site.xml開啟WebHDFS開關,此開關預設開啟。

<property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
</property>

使用

連線NameNode的50070埠進行檔案操作。

比如:curl "http://ctrl:50070/webhdfs/v1/?op=liststatus&user.name=root" | python -mjson.tool

更多操作

參考文件:官方WebHDFS REST API

HttpFS(Hadoop HDFS over HTTP)

介紹

HttpFS is a server that provides a REST HTTP gateway supporting all HDFS File System operations (read and write). And it is inteoperable with the webhdfs REST HTTP API.

安裝

Hadoop自帶,不需要額外安裝。預設服務未啟動,需要手工啟動。

配置

  • httpfs-site.xml
    有配置檔案httpfs-site.xml,此配置檔案一般儲存預設即可,無需修改。

  • hdfs-site.xml
    需要增加如下配置,其他兩個引數名稱中的root代表的是啟動hdfs服務的OS使用者,應以實際的使用者名稱稱代替。

<property>  
    <name>hadoop.proxyuser.root.hosts</name>  
    <value>*</value>  
</property>  
<property>  
<name>hadoop.proxyuser.root.groups</name>  
    <value>
*</value> </property>

啟動

sbin/httpfs.sh start
sbin/httpfs.sh stop

啟動後,預設監聽14000埠:

[[email protected] sbin]# netstat -antp | grep 14000
tcp        0      0 :::14000   :::*       LISTEN      7415/java
[[email protected] sbin]#

使用

curl "http://ctrl:14000/webhdfs/v1/?op=liststatus&user.name=root" | python -mjson.tool

更多操作

參考文件

更多操作:
官方WebHDFS REST API
HttpFS官方文件

WebHDFS與HttpFS的關係

WebHDFS vs HttpFs Major difference between WebHDFS and HttpFs: WebHDFS needs access to all nodes of the cluster and when some data is read it is transmitted from that node directly, whereas in HttpFs, a singe node will act similar to a “gateway” and will be a single point of data transfer to the client node. So, HttpFs could be choked during a large file transfer but the good thing is that we are minimizing the footprint required to access HDFS.