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版本),很簡單,就一個檔案:
1
2
3
4
5
6
7
8
9
10
<code><</code><code>property</code><code>></code>
<code><name>dfs.webhdfs.enabled<</code><code>/</code><code>name></code>
<code><value>true<</code><code>/</code><code>value></code>
<code><</code><code>/</code><code>property</code><code>></code>
<code><name>dfs.support.broken.append<</code><code>/</code><code>name></code>
<a href="http://s3.51cto.com/wyfs02/M01/54/4D/wKioL1R-r0zT7PIcAAJKc6n56Kw085.jpg" target="_blank"></a>
然後重新開機hadoop服務:
stop-all.sh 然後 start-all.sh
檢視namenode伺服器中的日志檔案,發現如下行就代表webHDFS啟動了:
<a href="http://s3.51cto.com/wyfs02/M02/54/4F/wKiom1R-sy_BWnmcAAi9duDb3LM985.jpg" target="_blank"></a>
現在我們來測試web是否能夠通信了:
<a href="http://s3.51cto.com/wyfs02/M01/54/4F/wKiom1R-s5WgMJ2QAAHU3JU2f-M697.jpg" target="_blank"></a>
相關操作指令可以參考官方文檔:
http://hadoop.apache.org/docs/r1.0.4/webhdfs.html
本文轉自 shine_forever 51CTO部落格,原文連結:http://blog.51cto.com/shineforever/1585942