gpt4 book ai didi

hadoop - 统计hdfs中压缩文件的个数

转载 作者:可可西里 更新时间:2023-11-01 15:12:12 24 4
gpt4 key购买 nike

我正在尝试计算 Hdfs 文件夹中压缩的文件。我正在使用 hdfs dfs -count/user/data | grep .snappy——什么都不显示grep.snappy | hdfs dfs -count/user/data --它显示所有文件(即使不是.snappy)

我能得到正确的命令来计算这个/user/data hdfs 路径中的 .snappy 文件吗

最佳答案

hdfs dfs -count 命令提供以下信息:

  • 目录数
  • 文件数
  • 内容大小
  • 文件名

例如,我在 /tmp/ 文件夹中得到以下输出:

CMD> hdfs dfs -count  /tmp/
14 33 193414280395 /tmp

使用此命令,您无法像这样获取 .snappy 文件的计数:

CMD> hdfs dfs -count -v /tmp/*.snappy

你会得到这样的输出:

DIR_COUNT   FILE_COUNT       CONTENT_SIZE PATHNAME
0 1 4623 /tmp/Links.txt.snappy
0 1 190939 /tmp/inclusions_00000005.snappy

要获取.snappy文件的个数,也可以执行以下命令:

  • 获取文件夹下.snappy文件的个数:

    只需执行hadoop fs -ls 命令。例如要获取 /user/data 文件夹下的 .snappy 文件的数量,只需执行:

    hadoop fs -ls /user/data/*.snappy | wc -l
  • 递归获取文件夹下所有.snappy文件的数量:

    执行hadoop fsck 命令。例如:

    hadoop fsck /user/data/ -files | grep ".snappy" | wc -l

编辑:所有大于 30 MB 的文件如果要查找所有大于等于30MB(30 *1024 * 1024 = 31457280)的文件,需要执行以下命令:

hadoop fsck /user/data -files | grep ".snappy" | gawk '{if ($2 ~ /^[0-9]+$/ && $2>=31457280) print $1,$2;}'

这将打印 $1 作为文件名,$2 作为文件大小。

如果您想要文件的计数,只需将其通过管道传输到 wc -l,如下所示:

hadoop fsck /user/data -files | grep ".snappy" | gawk '{if ($2 ~ /^[0-9]+$/ && $2>=31457280) print $1,$2;}' | wc -l

关于hadoop - 统计hdfs中压缩文件的个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34724878/

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