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>
然後重啓hadoop服務:
stop-all.sh 然後 start-all.sh
查看namenode服務器中的日誌文件,發現如下行就代表webHDFS啓動了:
現在我們來測試web是否能夠通信了:
curl -i 'http://172.16.41.151:50070/webhdfs/v1/?op=LISTSTATUS'
相關操作命令可以參考官方文檔:
http://hadoop.apache.org/docs/r1.0.4/webhdfs.html