2012-06-16 36 views
1

我使用Ubuntu 12,Hadoop 1.0.3,我使用webhdfs curl創建文件。Hadoop webhdfs curl創建文件

curl -i -X PUT "http://localhost:50070/webhdfs/v1/test.txt?op=CREATE 

,或者使用

curl -i -X PUT -T /home/hadoop/TestFile/test.txt "http://localhost:50070/webhdfs/v1/test?op=CREATE" 

兩個稱道結果是

HTTP/1.1 307 TEMPORARY_REDIRECT

什麼設置缺乏HDFS-site.xml中的?還是沒有設置其他權限?

謝謝!

回答

3

按照文檔的Web HDFS,這種預期:

當您第一次放進,你會得到的數據節點的臨時重定向到的網址您可以發出另一個PUT命令將文件實際上傳到HDFS中。

該文件還解釋了這背後2步推理create方法:

注意,有兩個步驟創建/附加的理由是爲了防止客戶重定向之前發送出去的數據。 HTTP/1.1中的「Expect:100-continue」標題解決了此問題;請參閱RFC 2616,第8.2.3節。不幸的是,有軟件庫錯誤(例如Jetty 6 HTTP服務器和Java 6 HTTP客戶端),它們沒有正確實現「Expect:100-continue」。兩步創建/附加是軟件庫錯誤的臨時解決方法。

+0

我可以問如何設置臨時重定向URL,謝謝! – lighter

+0

您無法設置它,第一個請求中來自名稱節點的響應是您需要針對(將在其上存儲數據的數據節點)執行第二次PUT的重定向URL –

+0

哦!我明白了,非常感謝! – lighter