从HDFS集群中列出文件列表

6

我对Hadoop和相关技术是业余爱好者。现在,我正在尝试从客户端Eclipse访问Hadoop集群(HDFS)并检索文件列表。在设置了Hadoop Java客户端所需的配置后,我可以执行以下操作:

我可以通过访问HDFS从客户端执行copyFromLocalFilecopyToLocalFile操作。以下是我的问题:当我调用listFiles()方法时,我得到了

org.apache.hadoop.fs.LocatedFileStatus@d0085360
org.apache.hadoop.fs.LocatedFileStatus@b7aa29bf

MainMethod

Properties props = new Properties();
props.setProperty("fs.defaultFS", "hdfs://<IPOFCLUSTER>:8020");
props.setProperty("mapreduce.jobtracker.address", "<IPOFCLUSTER>:8032");
props.setProperty("yarn.resourcemanager.address", "<IPOFCLUSTER>:8032");
props.setProperty("mapreduce.framework.name", "yarn");
FileSystem fs = FileSystem.get(toConfiguration(props)); // Setting up the required configurations
Path p4 = new Path("/user/myusername/inputjson1/");
RemoteIterator<LocatedFileStatus> ritr = fs.listFiles(p4, true);
while(ritr.hasNext())
        {
            System.out.println(ritr.next().toString());
        }

我也试过FileContext,但最终只得到了文件状态对象字符串之类的东西。在遍历远程HDFS目录时,有一个叫做getPath()的方法,是否有可能获取文件名?这是使用hadoop API检索文件完整路径的唯一方法,还是有其他方法可以检索指定目录路径中仅名称的文件?请通过此帮助我,谢谢。

1个回答

5

实际上:Path p = ritr.next().getPath(); - Saba Jamalian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接