WebHDFS观念是基于HTTP操作,比如GET、PUT、POST和DELETE。像OPEN、GETFILESTATUS、LISTSTATUS的操作是使用HTTP GET,其它的像CREAT、MKDIRS、RENAME、SETPERMISSION是依赖于HTTP PUT类型。 APPEND操作时基于HTTP POST类型,然而,DELETE是使用HTTP DELETE。


在配置开源日志系统fluentd过程中,fluentd就是利用webHDFS和HDFS进行通信,配置好久没有通,最后发现hadoop 0.20.2 不支持webHDFS!所以本文中的hadoop版本是:hadoop-1.2.1



配置webHDFS服务(针对hadoop 1.2.1版本),很简单,就一个文件

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


<property>
<name>dfs.support.broken.append</name>
<value>true</value>
</property>

wKioL1R-r0zT7PIcAAJKc6n56Kw085.jpg



然后重启hadoop服务:

stop-all.sh 然后 start-all.sh


查看namenode服务器中的日志文件,发现如下行就代表webHDFS启动了:

wKiom1R-sy_BWnmcAAi9duDb3LM985.jpg


现在我们来测试web是否能够通信了:

curl -i 'http://172.16.41.151:50070/webhdfs/v1/?op=LISTSTATUS'


wKiom1R-s5WgMJ2QAAHU3JU2f-M697.jpg


相关操作命令可以参考官方文档:

http://hadoop.apache.org/docs/r1.0.4/webhdfs.html