복붙노트

[HADOOP] 네임 노드 파일 수량 제한

HADOOP

네임 노드 파일 수량 제한

Hdfs의 namenode에서 파일 당 얼마나 많은 바이트가 차지하는 지 알고있는 사람이 있습니까? 얼마나 많은 파일을 32G 메모리의 단일 namenode에 저장할 수 있는지 추정하고 싶습니다.

해결법

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

    1.각 파일이나 디렉토리 또는 블록은 namenode 메모리에서 약 150 바이트를 차지합니다. [1] 따라서 32G RAM을 가진 namenode를 가진 클러스터는 최대 3800 만 개의 파일을 지원할 수 있습니다 (namenode가 병목이라고 가정). (각 파일도 블록을 차지하므로 각 파일은 실제로 300 바이트가 걸립니다. 또한 3 배 복제를 가정하므로 각 파일은 900 바이트를 차지합니다)

    각 파일이나 디렉토리 또는 블록은 namenode 메모리에서 약 150 바이트를 차지합니다. [1] 따라서 32G RAM을 가진 namenode를 가진 클러스터는 최대 3800 만 개의 파일을 지원할 수 있습니다 (namenode가 병목이라고 가정). (각 파일도 블록을 차지하므로 각 파일은 실제로 300 바이트가 걸립니다. 또한 3 배 복제를 가정하므로 각 파일은 900 바이트를 차지합니다)

    그러나 실제로는 매핑을 유지하기 위해 모든 32G가 namenode에 사용 가능하지 않기 때문에 숫자가 훨씬 적습니다. 해당 시스템의 namenode에 더 많은 힙 공간을 할당하여 증가시킬 수 있습니다.

    또한 복제는이 정도를 낮 춥니 다. 각 추가 복제본은 약 16 바이트를 메모리 요구 사항에 추가합니다. [2]

    [1] http://www.cloudera.com/blog/2009/02/the-small-files-problem/

    [2] http://search-hadoop.com/c/HDFS:/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfo.java%7C%7CBlockInfo

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

    2.Cloudera는 백만 블록 당 1GB의 NameNode 힙 공간을 권장합니다. 1 백만 개 파일 당 1GB는 보수적이지 않지만 작동해야합니다.

    Cloudera는 백만 블록 당 1GB의 NameNode 힙 공간을 권장합니다. 1 백만 개 파일 당 1GB는 보수적이지 않지만 작동해야합니다.

    또한 복제 요소를 곱할 필요가 없으며 허용 된 대답이 잘못되었습니다.

    예 :

    cloudera에서 기원 기사에 더 많은 예제 기사.

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

    3.(각 파일 메타 데이터 = 150 바이트) + (파일의 블록 메타 데이터 = 150 바이트) = 300 바이트 1 개의 블록이있는 1 백만 개의 파일은 각각 300 = 100 * 1000000 = 300000000 바이트를 소비합니다.                                                              = 300MB (복제 인수 1). 복제 인수 3으로 900MB 필요.

    (각 파일 메타 데이터 = 150 바이트) + (파일의 블록 메타 데이터 = 150 바이트) = 300 바이트 1 개의 블록이있는 1 백만 개의 파일은 각각 300 = 100 * 1000000 = 300000000 바이트를 소비합니다.                                                              = 300MB (복제 인수 1). 복제 인수 3으로 900MB 필요.

    따라서 1GB 당 엄지 손가락 규칙으로 1 백만 개의 파일을 저장할 수 있습니다.

  4. from https://stackoverflow.com/questions/10764493/namenode-file-quantity-limit by cc-by-sa and MIT license