如何从fsimage中找到文件的文件名和大小?

How to find the file name and size of the file from fsimage?

我正在尝试在 HDFS 中查找小于块大小的文件。

通过使用 OIV,我将 fsimage 转换为带有如下分隔符的文本文件。

hdfs oiv_legacy -i /tmp/fsimage -o /tmp/fsimage_$RUNDATE/fsimage.txt -p Delimited -delimiter '@'

因为fsimage 有很多数据。从这里如何找到HDFS中每个文件的文件名和文件大小。

谁能帮忙。

提前致谢....

hadoop fs -find /tmp/fsimage size 64 -print

注意:我使用的是 MapR Hadoop.The 语法,如果它是 Cloudera、Hortonworks,可能会很谨慎。

看看本文末尾的脚本documentation

开始于:

A = LOAD '$inputFile' USING PigStorage('\t') AS (path:chararray,
                                                replication:int,
                                                modTime:chararray,
                                                accessTime:chararray,
                                                blockSize:long,
                                                numBlocks:int,
                                                fileSize:long,
                                                NamespaceQuota:int,
                                                DiskspaceQuota:int,
                                                perms:chararray,
                                                username:chararray,
                                                groupname:chararray);

-- Grab the pathname and filesize
B = FOREACH A generate path, fileSize;

-- Save results
STORE B INTO '$outputFile';