我一直在尝试使用webhdfs restapi将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禁止:
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://成为链接)另外,我本想使用microsoft的hadoop sdk,但它是alpha,不会在我的环境中编译:(
1条答案
按热度按时间xe55xuns1#
确保您正在写入webhdfs所属组下的目录。默认情况下,这是hdfs。
一个快速的检查方法
hadoop fs -ls
在目录的父目录上获取组权限设置(第二列可能看起来像用户名)。