目录中的子目录数量?

时间:2016-08-09 17:05:19

标签: linux hadoop apache-spark hdfs redhat

如何在HDFS中查找指定目录中的子目录数?

当我hadoop fs -ls /mydir/时,我收到Java堆空间错误,因为目录太大,但我感兴趣的是该目录中的子目录数。我试过了:

gsamaras@gwta3000 ~]$ hadoop fs -find /mydir/ -maxdepth 1 -type d -print| wc -l
find: Unexpected argument: -maxdepth
0

我知道该目录不为空,因此0不正确:

[gsamaras@gwta3000 ~]$ hadoop fs -du -s -h /mydir
737.5 G  /mydir

1 个答案:

答案 0 :(得分:1)

使用的命令是: hdfs dfs -ls -R /path/to/mydir/ | grep "^d" | wc -l

但这也会给你错误java.lang.OutOfMemoryError: Java heap space。为了避免错误,您需要增加java堆空间并运行相同的命令:

export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Xmx5g"然后

hdfs dfs -ls -R /path/to/mydir/ | grep "^d" | wc -l .....#对于所有子目录

OR

hdfs dfs -ls /path/to/mydir/ | grep "^d" | wc -l .....#对于maxdepth = 1