복붙노트

[HADOOP] HDFS - 블록 크기 관련

HADOOP

HDFS - 블록 크기 관련

나는 10 MB의 소비 HDFS 첫 번째 파일에서 생각하고 사용 가능한 공간에 광고까지 해제 54 MB의 휴식 only.I의 크기는 10MB의 파일이 있습니다. 내 질문은 -

해결법

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

    1.하둡에서 참조 - 확실한 가이드 :

    하둡에서 참조 - 확실한 가이드 :

    각 파일 블록에 저장되며, 블록 메타 네임 노드가 메모리에 저장되기 때문에 HDFS은 비효율적으로 작은 파일을 저장한다. 따라서, 작은 많은 수의 파일은 네임 노드의 메모리를 많이 먹을 수 있습니다. 파일의 원시 내용을 저장하는 데 필요한 것보다 (단,이 작은 파일은 더 이상 디스크 공간을 차지하지 않습니다. 예를 들어 128 메가 바이트 블록 크기로 저장된 1 메가 바이트 파일의 디스크 공간이 1MB의 사용, 하지 1백28메가바이트)

    그래서 당신은 약 맞다 "HDFS 첫 번째 파일은 10MB의 소비 및 사용 가능한 공간에 광고까지 해제 54 MB의 휴식."

    그러나 HDFS 블록은 물리적 스토리지 할당 부 아니지만 그것을 64 MB의 블록 사이즈가 될 때까지 논리 스토리지 할당 unit.So는이 블록에 계속 추가 할 그것을 싫어. (위 해제 디스크 공간이 추가됨에 따라 ) 사용 가능한 저장에

    맵퍼의 수 inputsplits의 수에 따라 달라집니다 및 작업 클라이언트는 입력 작업을 실행하는 동안 지정된 HDFS의 입력 경로에있는 데이터를 분할 계산한다. 그래서 당신의 예에 따라이를 3 inputsplits, 2 64메가바이트 1 20메가바이트 (기본 HDFS 블록 크기를 가정)를 작성합니다.

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

    2.파일의 분할 크기의 최대 값을 참조하는 블록의 크기 (64 메가 바이트 128메가바이트). 파일 크기가 다음 작더라도 (64)은 블록 / 분할로 고려할 것을 의미합니다.

    파일의 분할 크기의 최대 값을 참조하는 블록의 크기 (64 메가 바이트 128메가바이트). 파일 크기가 다음 작더라도 (64)은 블록 / 분할로 고려할 것을 의미합니다.

    당신은 단지 10메가바이트을 의미 10메가바이트 파일을 저장하려고 생각이라면, 64메가바이트으로 블록 크기를 고려, 그 파일의 유출 블록 /입니다. 가정 경우 70메가바이트 파일을 저장하려고하면 파일이 저장에서 64메가바이트 6MB의 블록 / 분할로 분할을 의미합니다. 64 메가 바이트 128 메가 바이트가 있어야 블록처럼 아무것도 없다.

  3. from https://stackoverflow.com/questions/33513782/hdfs-block-size-related by cc-by-sa and MIT license