복붙노트

[HADOOP] 디렉토리에 하위 디렉토리가 있습니까?

HADOOP

디렉토리에 하위 디렉토리가 있습니까?

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. ==============================

    1.사용할 명령은 다음과 같습니다. hdfs dfs -ls -R / path / to / mydir / | grep "^ d"| 화장실 -l

    사용할 명령은 다음과 같습니다. hdfs dfs -ls -R / path / to / mydir / | grep "^ d"| 화장실 -l

    그러나 이것은 또한 java.lang.OutOfMemoryError : Java heap space 오류를 발생시킵니다. 오류를 피하려면 Java 힙 공간을 늘리고 다음과 같은 명령을 실행해야합니다.

    HADOOP_CLIENT_OPTS = "$ HADOOP_CLIENT_OPTS -Xmx5g"내보내기 후

    hdfs dfs -ls -R / path / to / mydir / | grep "^ d"| wc -l ..... # 모든 하위 디렉토리

    또는

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

  2. from https://stackoverflow.com/questions/38856659/number-of-subdirectories-in-a-directory by cc-by-sa and MIT license