对webhdfs的Http请求但是给出了FileNotFoundException

时间:2013-03-26 09:10:45

标签: java http hadoop hdfs

我安装了hadoop 1.0.4。我启用了webhdfs并使用curl命令获取主目录。

curl -i "http://172.16.30.40:50075/webhdfs/v1?user.name=ubantu&op=GETFILESTATUS"

它为GETHOMEDIRECTORY工作但不适用于其他操作,如GETFILESTATUS,LISTSTATUS等

我得到了例外

**{"RemoteException":{"exception":"FileNotFoundException","javaClassName":"java.io.FileNotFoundException","message":"File /webhdfs/v1 not found."}}**

这是conf文件:

HDFS-site.xml中

<configuration>
     <property>
         <name>dfs.replication</name>
         <value>3</value>
     </property>
     <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
     </property>
     <property>
       <name>dfs.support.append</name>
       <value>true</value>
    </property>
</configuration>

有人可以提出一些建议吗?

感谢。

1 个答案:

答案 0 :(得分:0)

根据文档(http://hadoop.apache.org/docs/r1.0.4/webhdfs.html#GETHOMEDIRECTORY),要访问主目录,您应该使用curl -i "http://<HOST>:<PORT>/webhdfs/v1/?op=GETHOMEDIRECTORY"

另外,请尝试使用:50070。这是我用于webdfs的端口,它工作正常。

curl -i "http://localhost:50070/webhdfs/v1/?op=GETHOMEDIRECTORY" 

<强>更新

在您的示例中,您没有指定文件的路径来检查其状态。 在下面的示例中,如果您将/ path / to / your /与文件路径交换,然后使用您的文件名更改'file',那么这会给您带来什么?

curl -i  "http://localhost:50070/webhdfs/v1/path/to/your/file?op=GETFILESTATUS"