我尝试在c#中使用webhdfs列出文件夹的名称。url在沙盒中使用curl工作正常,但在我的笔记本电脑中不使用c#
错误消息-socketexception:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应
代码:
static void Main(string[] args)
{
Uri myUri = new Uri("http://hostname:50070/webhdfs/v1/user/hive/warehouse");
string userName = "myuser";
WebHDFSClient hdfsClient = new WebHDFSClient(myUri, userName);
string strDirectoryPath= "/user/hive/warehouse";
ArrayList l = new ArrayList();
l.Add(hdfsClient.GetDirectoryStatus(
strDirectoryPath).Result.Directories);
}
1条答案
按热度按时间gkl3eglg1#
几个问题:
你的uri是“http://hostname:50070/webhdfs/v1/user/hive/warehouse”,并且您的strdirectorypath=“/user/hive/warehouse”-因此您的复制路径http://hostname:50070/webhdfs/v1/user/hive/warehouse/user/hive/warehouse“不存在
您的用户“myuser”可能没有访问/user/hive/warehouse的权限-请通过“hdfs dfs-ls/user/hive/warehouse”检查其权限
(只是检查)uri中的“hostname”只是为了回答问题,而不是在实际代码中,对吗?您需要沙盒的主机名/ip