我一直在尝试使用 c# 使用 WebHDFS REST API 将文件上传到 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:// 成为链接)另外,我本来想使用 Microsoft 的 hadoop SDK,但它是 alpha 并且不会在我的环境中编译:(