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

时间:2016-12-28 22:32:18

标签: hadoop apache-pig

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

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

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

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

任何人都可以帮忙。

提前致谢....

2 个答案:

答案 0 :(得分:0)

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

注意:我正在使用MapR Hadoop。如果Cloudera,Hortonworks,语法可能会持谨慎态度。

答案 1 :(得分:0)

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';