728x90
반응형

블록(Block) 이란

일반적으로 물리적인 디스크는 블록 크기 란 개념이 있다. 블록 크기 는 한 번에 읽고 쓸 수 있는 데이터의 최대량이다. 보통 파일 시스템의 블록 크기는 수 킬로바이트이고 디스크 블록의 크기는 기본적으로 512 바이트이다.

 

 

HDFS Block

HDFS 의 블록은 기본적으로 128MB 와 같이 매우 큰 단위이다.

 

HDFS 의 파일은 단일 디스크를 위한 파일시스템처럼 특정 블록 크기의 청크로 쪼개지고 각 청크는 독립적으로 저장된다. 단일 디스크를 위한 파일시스템은 디스크 블록 크기보다 작은 데이터라도 한 블록 전체를 점유하지만 HDFS 파일은 블록 크기보다 작은 데이터일 경우 전체 블록 크기에 대한 하는 하위 디스크를 모두 점유하지 않는다.

 

 

HDFS 블록이 큰 이유

HDFS 블록이 디스크 블록에 비해 상당히 큰 이유는 탐색 비용을 최소화하기 위해서이다.

 

블록이 매우 크면 블록의 시작점을 탐색하는 데 걸리는 시간을 줄일 수 있고 데이터를 전송하는데 많은 시간을 할애할 수 있다. 따라서 여러 개의 블록으로 구성된 대용량 파일을 전송하는 시간은 디스크 전송 속도에 크게 영향을 받는다.

 

블록은 내고장성(Fault Tolerance)가용성(Availability) 을 제공하는 데 필요한 복제(replication) 를 구현할 때 매우 적합하다. 블록의 손상과 디스크 및 머신의 장애애 대처하기 위해 각 블록은 물리적으로 분리된 다수의 머신(보통 3개)에 복제되며 만일 하나의 블록을 이용할 수 없는 상황이 되면 다른 머신에 있는 복사본을 읽도록 클라이언트에게 알려주면 된다. 블록이 손상되거나 머신의 장애로 특정 블록을 더이상 이용할 수 없다면 또 다른 복사본을 살아있는 머신에 복제하여 복제 계수를 정상 수중으로 돌아오게 할 수 있다.

 

다음과 같은 명령어를 통해 HDFS 의 블록을 관리할 수 있다.

hdfs fsck / -files -blocks
728x90
반응형
복사했습니다!