[HADOOP] Hadoop 블록 크기 및 파일 크기 문제?
HADOOPHadoop 블록 크기 및 파일 크기 문제?
이는 바보 같은 질문처럼 보일 수 있지만 Hadoop에서는 블록 크기가 X (일반적으로 64 또는 128MB)이고 로컬 파일 크기가 Y (Y는 X보다 작음)라고 가정합니다. 이제 파일 Y를 HDFS에 복사하면 블록 하나가 소모됩니다 또는 hadoop은 더 작은 크기의 블록을 만들 것인가?
해결법
-
==============================
1.하나의 블록은 Hadoop에 의해 소비됩니다. 그렇다고해서 저장 용량이 동등한 방식으로 사용된다는 의미는 아닙니다.
하나의 블록은 Hadoop에 의해 소비됩니다. 그렇다고해서 저장 용량이 동등한 방식으로 사용된다는 의미는 아닙니다.
웹에서 HDFS를 탐색하면서 출력되는 내용은 다음과 같습니다.
filename1 file 48.11 KB 3 128 MB 2012-04-24 18:36 filename2 file 533.24 KB 3 128 MB 2012-04-24 18:36 filename3 file 303.65 KB 3 128 MB 2012-04-24 18:37
각 파일 크기가 128MB 인 블록 크기보다 작음을 알 수 있습니다. 이 파일들은 KB 단위입니다. HDFS 용량은 실제 파일 크기에 따라 사용되지만 파일 당 블록이 사용됩니다.
HDFS의 용량에 따라 사용 가능한 블록 수가 제한되어 있습니다. 실제 저장 용량을 모두 사용하기 전에 블록을 낭비하고 있습니다. Unix filsystem도 blocksize 개념을 가지고 있지만 512 바이트 정도의 매우 작은 수임을 기억하십시오. 이 개념은 HDFS에서 반전되어 블록 크기가 64-128 MB 정도로 커집니다.
다른 문제는 map / reduce 프로그램을 실행할 때 블록마다 매퍼를 생성하려고하므로이 경우 3 개의 작은 파일을 처리 할 때 결국 3 명의 매퍼가 생성되어 결국에는 작동 할 수 있다는 것입니다. 파일 크기가 작 으면 자원을 낭비합니다. 또한 각 매퍼가 생성되는 데 시간이 걸리며 궁극적으로 매우 작은 크기의 파일로 작업 할 때 대기 시간을 추가합니다. 더 적은 수의 파일로 작업하는 매퍼를 이용하려면 블록 크기에 가까운 파일로 압축해야합니다.
수많은 작은 파일의 또 다른 문제는 각 블록의 매핑 (메타 데이터)과 주 메모리의 청크 매핑을 유지하는 namenode를로드한다는 것입니다. 파일이 작을수록이 표를 더 빠르게 채우고 메타 데이터가 커질수록 주 메모리가 더 많이 필요합니다.
참조를 위해 다음을 읽으십시오.
from https://stackoverflow.com/questions/11368907/hadoop-block-size-and-file-size-issue by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] YARN에 배포 할 때 Apache Spark에서 시스템 오류를 처리하는 방법은 무엇입니까? (0) | 2019.07.10 |
---|---|
[HADOOP] Hadoop에서는 프레임 워크가 Map 작업의 출력을 일반 Map-Reduce 응용 프로그램에 저장합니까? (0) | 2019.07.10 |
[HADOOP] 원격 Spark 마스터에 연결 - Java / Scala (0) | 2019.07.10 |
[HADOOP] 이름 노드는 무엇을 저장합니까? (0) | 2019.07.10 |
[HADOOP] Amazon의 EMR을 사용하여 CLI에서 사용자 정의 jar로 맵핑 된 구성 및 Java 옵션을 지정하는 방법은 무엇입니까? (0) | 2019.07.10 |