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服务,很简单,就一个文件:
<property> <name>dfs.webhdfs.enabled</name> <value>true</value> </property> <property> <name>dfs.support.append</name> <value>true</value> </property> <property> <name>dfs.support.broken.append</name> <value>true</value> </property>
然后重启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