递归查找 HDFS 文件夹中的最大文件或子目录

recursively find max file or sub-directory in an HDFS folder

我想递归地查找 HDFS 文件夹中的最大文件或子目录。有没有什么命令或者脚本可以参考?

提前致谢, 林

试试这个 shell 脚本,如果你想找到最大大小的文件:

h1out="/path/to/out/file/hadoop-ls-out.txt"
a1out="/path/to/out/file/hadoop-awk-out.txt"
h1="`hadoop fs -lsr /usr > $h1out`"
a1="`awk '{print ,}' $h1out > $a1out`"
a2="`awk 'BEGIN{first=1;}{if (first) { max = min = ; first = 0; next;}if (max < ) max=; if (min > ) min=; }END { print max }' $a1out`"
g1="`grep -r $a2 $a1out`"
echo $g1

解释:

h1out是存放的文件路径 hadoop fs -lsr output

a1out是存储awk输出的文件路径

h1 在我的 HDFS 路径 /usr 中递归列出文件并将其存储在 h1out

a1h1out 文件打印 filesizefilename (带完整路径)并保存在 a1out 个文件中

a2filesize 中找到 minmax 值,但我只使用了最大值(因为你需要最大值)所以它只显示最大文件大小

g1 在文件 a1out 中搜索 $a2 的值并打印出来。此结果打印 filesizefilename 以及 max fileseize.

NOTE: If you are using latest hadoop version, replace "hadoop fs" with "hdfs dfs"