2012-06-16 71 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