【发布时间】:2016-08-11 00:34:36
【问题描述】:
如何在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
【问题讨论】:
-
我不明白
ls命令如何导致堆空间错误。它应该只是列出目录。 -
我认为只有路径和表达式对
-find命令有效,这就是为什么你得到 0 - 你有一个错误。 -
@cricket_007 可能它需要在 HDFS 中进行一些计算,我不确定,这就是为什么我认为应该给予支持,我让你今天学到了一些东西(开玩笑)!我已经看到了这两个问题,实际上还有更多,但是无论我从 命令行 尝试过什么都不会成功,我确实尝试过(例如刚才)
hadoop fs -ls -R /mydir并得到了OutOfMemoryError: Java heap space: failed reallocation of scalar replaced objects.
标签: linux hadoop apache-spark hdfs redhat