gpt4 book ai didi

hadoop - 如何统计hadoop中特定目录下的文件数?

转载 作者:可可西里 更新时间:2023-11-01 14:23:18 25 4
gpt4 key购买 nike

我是 map-reduce 框架的新手。我想通过提供该目录的名称来找出特定目录下的文件数。例如假设我们有 3 个目录 A、B、C,每个目录分别有 20、30、40 个 part-r 文件。所以我有兴趣编写一个 hadoop 作业,它将计算每个目录中的文件/记录,即我想要在以下格式的 .txt 文件中输出:

A 有 20 条记录

B 有 30 条记录

C 有 40 条记录

这些所有目录都存在于 HDFS 中。

最佳答案

最简单/ native 的方法是使用内置的 hdfs 命令,在这种情况下 -count:

hdfs dfs -count /path/to/your/dir  >> output.txt

或者,如果您更喜欢通过 Linux 命令的混合方法:

hadoop fs -ls /path/to/your/dir/*  | wc -l >> output.txt

最后MapReduce版本已经在这里回答了:

How do I count the number of files in HDFS from an MR job?

代码:

int count = 0;
FileSystem fs = FileSystem.get(getConf());
boolean recursive = false;
RemoteIterator<LocatedFileStatus> ri = fs.listFiles(new Path("hdfs://my/path"), recursive);
while (ri.hasNext()){
count++;
ri.next();
}
System.out.println("The count is: " + count);

关于hadoop - 如何统计hadoop中特定目录下的文件数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38781902/

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