统计hdfs中压缩文件的个数
Counting the number of compressed files in hdfs
我正在尝试计算 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 ( ~ /^[0-9]+$/ && >=31457280) print ,;}'
这将打印 $1 作为文件名,$2 作为文件大小。
如果您想要文件的数量,只需将其通过管道传输到 wc -l
,如下所示:
hadoop fsck /user/data -files | grep ".snappy" | gawk '{if ( ~ /^[0-9]+$/ && >=31457280) print ,;}' | wc -l
我正在尝试计算 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 ( ~ /^[0-9]+$/ && >=31457280) print ,;}'
这将打印 $1 作为文件名,$2 作为文件大小。
如果您想要文件的数量,只需将其通过管道传输到 wc -l
,如下所示:
hadoop fsck /user/data -files | grep ".snappy" | gawk '{if ( ~ /^[0-9]+$/ && >=31457280) print ,;}' | wc -l