我试图计算压缩在hdfs文件夹中的文件数。我使用的是hdfs dfs-count/user/data | grep.snappy—它不显示任何内容grep.snappy | hdfs dfs-count/user/data—它显示所有文件(即使不是.snappy)我能得到正确的命令来计算这个/user/data hdfs路径中的.snappy文件吗
ru9i0ody1#
hdfs dfs -count 命令提供以下信息:目录计数文件计数内容大小文件名例如,我在我的计算机上得到如下输出 /tmp/ 文件夹:
hdfs dfs -count
/tmp/
CMD> hdfs dfs -count /tmp/ 14 33 193414280395 /tmp
使用此命令,无法获取 .snappy 像这样的文件:
.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 命令。例如获取 .snappy 下的文件 /user/data 文件夹,只需执行:
hadoop fs -ls
/user/data
hadoop fs -ls /user/data/*.snappy | wc -l
递归地获取所有 .snappy 文件夹下的文件:执行 hadoop fsck 命令。例如:
hadoop fsck
hadoop fsck /user/data/ -files | grep ".snappy" | wc -l
编辑:大于30MB的所有文件如果要查找大于或等于30MB(3010241024=31457280)的所有文件,需要执行以下命令:
hadoop fsck /user/data -files | grep ".snappy" | gawk '{if ($2 ~ /^[0-9]+$/ && $2>=31457280) print $1,$2;}'
这将打印$1作为文件名,打印$2作为文件大小。如果你想知道文件的数量,那就直接把它传给 wc -l 如下图所示:
wc -l
hadoop fsck /user/data -files | grep ".snappy" | gawk '{if ($2 ~ /^[0-9]+$/ && $2>=31457280) print $1,$2;}' | wc -l
1条答案
按热度按时间ru9i0ody1#
hdfs dfs -count
命令提供以下信息:目录计数
文件计数
内容大小
文件名
例如,我在我的计算机上得到如下输出
/tmp/
文件夹:使用此命令,无法获取
.snappy
像这样的文件:您将得到如下输出:
数到
.snappy
文件,也可以执行以下命令:数一数
.snappy
文件夹下的文件:执行就行了
hadoop fs -ls
命令。例如获取.snappy
下的文件/user/data
文件夹,只需执行:递归地获取所有
.snappy
文件夹下的文件:执行
hadoop fsck
命令。例如:编辑:大于30MB的所有文件如果要查找大于或等于30MB(3010241024=31457280)的所有文件,需要执行以下命令:
这将打印$1作为文件名,打印$2作为文件大小。
如果你想知道文件的数量,那就直接把它传给
wc -l
如下图所示: