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 的文件
如果要查找所有大小大于或等于 30 MB (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