如何查找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
使用的命令是: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
.....#For max深度=1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)