블록(Block) 이란
일반적으로 물리적인 디스크는 블록 크기
란 개념이 있다. 블록 크기
는 한 번에 읽고 쓸 수 있는 데이터의 최대량이다. 보통 파일 시스템의 블록 크기는 수 킬로바이트이고 디스크 블록의 크기는 기본적으로 512 바이트이다.
HDFS Block
HDFS 의 블록은 기본적으로 128MB 와 같이 매우 큰 단위이다.
HDFS 의 파일은 단일 디스크를 위한 파일시스템처럼 특정 블록 크기의 청크로 쪼개지고 각 청크는 독립적으로 저장된다. 단일 디스크를 위한 파일시스템은 디스크 블록 크기보다 작은 데이터라도 한 블록 전체를 점유하지만 HDFS 파일은 블록 크기보다 작은 데이터일 경우 전체 블록 크기에 대한 하는 하위 디스크를 모두 점유하지 않는다.
HDFS 블록이 큰 이유
HDFS 블록이 디스크 블록에 비해 상당히 큰 이유는 탐색 비용을 최소화하기 위해서이다.
블록이 매우 크면 블록의 시작점을 탐색하는 데 걸리는 시간을 줄일 수 있고 데이터를 전송하는데 많은 시간을 할애할 수 있다. 따라서 여러 개의 블록으로 구성된 대용량 파일을 전송하는 시간은 디스크 전송 속도에 크게 영향을 받는다.
블록은 내고장성(Fault Tolerance)
과 가용성(Availability)
을 제공하는 데 필요한 복제(replication) 를 구현할 때 매우 적합하다. 블록의 손상과 디스크 및 머신의 장애애 대처하기 위해 각 블록은 물리적으로 분리된 다수의 머신(보통 3개)에 복제되며 만일 하나의 블록을 이용할 수 없는 상황이 되면 다른 머신에 있는 복사본을 읽도록 클라이언트에게 알려주면 된다. 블록이 손상되거나 머신의 장애로 특정 블록을 더이상 이용할 수 없다면 또 다른 복사본을 살아있는 머신에 복제하여 복제 계수를 정상 수중으로 돌아오게 할 수 있다.
다음과 같은 명령어를 통해 HDFS 의 블록을 관리할 수 있다.
hdfs fsck / -files -blocks
'데이터 엔지니어링 > Hadoop' 카테고리의 다른 글
Cloudera Sandbox HDP for Daocker 설치 과정 정리, 결론은 안됨 😭 (0) | 2023.05.29 |
---|---|
HDFS HA 구성 이해하기(2) (0) | 2023.03.29 |
HDFS HA 구성 이해하기(1) (0) | 2023.03.29 |
하둡 에코 시스템(Hadoop Eco System) 에 대해서 (0) | 2023.02.05 |
HDFS(Hadoop Distributed File System) 이해하기 (0) | 2023.02.05 |