복붙노트

[HADOOP] HDFS 파일의 크기를 찾는 방법

HADOOP

HDFS 파일의 크기를 찾는 방법

HDFS 파일의 크기를 찾는 방법은 무엇입니까? HDFS에서 파일의 크기를 찾는 데 사용되는 명령은 무엇입니까?

해결법

  1. ==============================

    1.hadoop fs -ls 명령을 사용하여 현재 디렉토리의 파일과 그 세부 사항을 나열 할 수 있습니다. 명령 출력의 5 번째 열에는 파일 크기 (바이트)가 들어 있습니다.

    hadoop fs -ls 명령을 사용하여 현재 디렉토리의 파일과 그 세부 사항을 나열 할 수 있습니다. 명령 출력의 5 번째 열에는 파일 크기 (바이트)가 들어 있습니다.

    예 : 명령 hadoop fs -ls input은 다음과 같은 결과를 출력합니다 :

    Found 1 items
    -rw-r--r--   1 hduser supergroup      45956 2012-07-19 20:57 /user/hduser/input/sou
    

    파일의 크기는 45956 바이트입니다.

  2. ==============================

    2.나는 또한 자신이 hadoop fs -dus <경로>를 많이 사용하고 있음을 알았다. 예를 들어 "/ user / frylock / input"이라는 HDFS의 디렉토리에 100 개의 파일이 있고이 파일의 총 크기가 필요하면 다음을 실행할 수 있습니다.

    나는 또한 자신이 hadoop fs -dus <경로>를 많이 사용하고 있음을 알았다. 예를 들어 "/ user / frylock / input"이라는 HDFS의 디렉토리에 100 개의 파일이 있고이 파일의 총 크기가 필요하면 다음을 실행할 수 있습니다.

    hadoop fs -dus /user/frylock/input
    

    "/ user / frylock / input"디렉토리에있는 모든 파일의 전체 크기 (바이트)를 얻습니다.

    또한 HDFS는 데이터를 중복 저장하므로 파일로 사용 된 실제 물리적 스토리지가 hadoop fs -ls 및 hadoop fs -dus로보고 된 것보다 3 배 이상일 수 있습니다.

  3. ==============================

    3.파일 크기를 얻는 데 도움이되는 아래 함수를 사용했습니다.

    파일 크기를 얻는 데 도움이되는 아래 함수를 사용했습니다.

    public class GetflStatus
    {
        public long getflSize(String args) throws IOException, FileNotFoundException
        {
            Configuration config = new Configuration();
            Path path = new Path(args);
            FileSystem hdfs = path.getFileSystem(config);
            ContentSummary cSummary = hdfs.getContentSummary(path);
            long length = cSummary.getLength();
            return length;
        }
    }
    
  4. ==============================

    4.아래 명령을 awk 스크립트와 함께 사용하여 HDFS에서 필터링 된 출력의 크기 (GB)를 확인하십시오.

    아래 명령을 awk 스크립트와 함께 사용하여 HDFS에서 필터링 된 출력의 크기 (GB)를 확인하십시오.

    hadoop fs -du -s /data/ClientDataNew/**A***  | awk '{s+=$1} END {printf "%.3fGB\n", s/1000000000}'
    

    출력 ---> 2.089GB

    hadoop fs -du -s /data/ClientDataNew/**B***  | awk '{s+=$1} END {printf "%.3fG\n", s/1000000000}'
    

    출력 ---> 1.724GB

    hadoop fs -du -s /data/ClientDataNew/**C***  | awk '{s+=$1} END {printf  "%.3fG\n", s/1000000000}'
    

    출력 ---> 0.986GB

  5. ==============================

    5.API를 통해이를 수행하려면 'getFileStatus ()'메소드를 사용할 수 있습니다.

    API를 통해이를 수행하려면 'getFileStatus ()'메소드를 사용할 수 있습니다.

  6. ==============================

    6.

    hdfs dfs -du -s -h /directory
    

    이것은 사람이 읽을 수있는 버전입니다. 그렇지 않으면 잘못된 단위로 표시됩니다 (약간 더 커짐).

  7. from https://stackoverflow.com/questions/11574410/how-to-find-the-size-of-a-hdfs-file by cc-by-sa and MIT license