gpt4 book ai didi

java - 如何使用 maprfs Java API 执行递归 ls?

转载 作者:可可西里 更新时间:2023-11-01 16:47:11 26 4
gpt4 key购买 nike

我编写了一个应用程序,列出了 HDFS 中的所有文件,然后对它们进行了一些处理。这是我的代码的一部分,它列出了 HDFS 中的所有文件:

Configuration configuration = new Configuration();
FileSystem hdfs;
hdfs = FileSystem.get(new URI(url), configuration);
RemoteIterator<LocatedFileStatus> it = hdfs.listFiles(new Path(url+directory), true);

我想用 MapRFS 做同样的事情。作为第一次尝试,我尝试使用 Hadoop 的 jar ,但它没有用。然后我尝试使用 mapr (/opt/mapr/hadoop/hadoop-0.20.2/lib/hadoop-0.20.2-dev-core.jar) 附带的 jar,但似乎此 jar 中的对象 FileSystem 没有名为 listFiles 的方法。你知道我是否可以使用等效的方法吗?有没有办法只使用 Hadoop jar 来做到这一点?感谢您的回答。

最佳答案

您的代码对于 MapR 来说“几乎”是完美的,并且您的依赖项没问题。

您可能知道 MapR 不使用/没有,出于很多充分的理由,NameNodes 的概念。这意味着您连接到集群的方式不同。您不需要将集群 URL 指向配置或路径。

以下代码将起作用:

Configuration configuration = new Configuration();
FileSystem hdfs;
hdfs = FileSystem.get(configuration); // no need to send any cluster it is retrieved from Configuration
RemoteIterator<LocatedFileStatus> it = hdfs.listFiles(new Path(directory), true);

MapR 知道如何根据您在 /opt/mapr/conf/mapr-clusters.conf 中的信息进行连接。此文件指示集群的名称和 CLDB 的列表。节点。

如您所见,您编写的“hadoop 代码”是正确的并且可以正常工作。

关于java - 如何使用 maprfs Java API 执行递归 ls?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36065273/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com