如何使用c#验证WebHDFS

时间:2013-08-30 14:12:08

标签: c# hadoop hdfs webhdfs

我一直在尝试使用WebHDFS REST API将使用c#的文件上传到Hadoop中。 此代码可以正常使用:


    using (var client = new System.Net.WebClient())
    {
       string result = client.DownloadString("http:/ /host:50070/webhdfs/v1/user/myuser/?op=LISTSTATUS");
       client.DownloadFile("http:/ /host:50070/webhdfs/v1/user/myuser/tbible.txt?user.name=myuser&op=OPEN","d:\tbible.txt");
    }

此代码获得403 Forbidden:

    using (var client = new System.Net.WebClient())
    {
client.UploadFile("http:/ /host:50070/webhdfs/v1/user/myuser/?user.name=myuser&op=CREATE", "PUT", "d:\bible.txt"); }

我试过添加一个网络凭证,没有运气。 如何从.NET验证我们的群集?群集是RHEL5上的Hortonworks HDP1.3。 (这篇文章中的额外空格是保持http://不是链接) 此外,我本来希望使用微软的hadoop SDK,但它是alpha并且不会在我的环境中编译:(

1 个答案:

答案 0 :(得分:0)

确保您正在写入WebHDFS在其下运行的组下的目录。默认情况下,这是hdfs。

在目录的父目录上检查此操作hadoop fs -ls的快速方法,以获取组权限设置(第二列可能看起来像用户名)。