首页 > 解决方案 > hdfs + 每个递归文件夹的文件计数

问题描述

我们创建以下 bash 脚本

此脚本将计算每个 HDFS 文件夹下的文件数

#!/bin/bash


hadoop dfs -lsr / 2>/dev/null| grep drwx |awk '{print $NF}'>/tmp/file

while read -r line 
do 
sleep 0.1
echo -n $line
su -l hdfs -c "hdfs fsck $line -files -blocks -locations -openforwrite 2>/dev/null| grep 'Total files'  "
done <  /tmp/file 

输出示例

/applications Total files:  34198
/applications/hdfs Total files:     34185
/applications/hive Total files:     13
/apps Total files:      230
/apps/hive Total files: 443540

此脚本的问题是扫描所有 HDFS 和 SUB HDFS 文件夹(递归)并最终打印文件计数所需的时间

任何其他绝妙的想法如何使文件在 HDFS 中的计数比我的方式快得多?

标签: hadoophdfs

解决方案


推荐阅读