hdfs dfs -count 从哪里获取信息?

Posted

技术标签:

【中文标题】hdfs dfs -count 从哪里获取信息?【英文标题】:Where does hdfs dfs -count get information? 【发布时间】:2017-09-22 12:25:03 【问题描述】:

我们需要在一个包含大量数据的多租户多节点集群中计算大量目录中的文件数。 所以,我想知道命令“hdfs dfs -count /path/to/directory”从哪里来 得到它的信息?它是否像 hdfs dfs -ls 一样工作?还是直接从HDFS中的Namenode获取信息?

非常感谢!

【问题讨论】:

【参考方案1】:

它从 FileSystem API 调用getContentSummary 方法:

ContentSummary summary = src.fs.getContentSummary(src.path);
out.println(summary.toString(showQuotas) + src);

org.apache.hadoop.fs.FsShell.Count的源代码

getContentSummary的源代码

【讨论】:

谢谢!我从源代码中看到它具有类似于 ls 的行为(它是一个遍历目录的 for 循环)。 是的,因为ls 也会打印文件的大小。

以上是关于hdfs dfs -count 从哪里获取信息?的主要内容,如果未能解决你的问题,请参考以下文章

hadoop hdfs dfs 命令讲解

HDFS 命令大全

如何查看整个根 hdfs 磁盘使用情况? (hadoop dfs -du / 获取子文件夹)

HDFS客户端操作

“hdfs dfs -ls”和“hdfs dfs -ls /”之间的区别

Hive添加的文件在哪里?