我尝试列出Hortonworks webhdfs,它将使用curl命令在Hortonworks控制台上正常工作,但不能在C#中列出

时间:2019-01-19 09:14:47

标签: c# hadoop webhdfs

我尝试在C#中使用webhdfs列出文件夹的名称。使用沙盒中的curl可以正常工作URL,但在笔记本电脑中的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 个答案:

答案 0 :(得分:0)

一些问题:

  1. 您的URI为“ http://hostname:50070/webhdfs/v1/user/hive/warehouse”,而您的strDirectoryPath =“ / user / hive / warehouse”-因此,您将路径复制为“ http://hostname:50070/webhdfs/v1/user/hive/warehouse/user/hive/warehouse”不存在
  2. 您的用户“ myuser”可能没有权限访问/ user / hive / warehouse-通过“ hdfs dfs -ls / user / hive / warehouse”检查其权限
  3. (仅检查)URI中的“主机名”-仅用于问题,而不是实际代码中,对吗?您将需要沙箱的主机名/ IP