SW Engineering/Hadoop

HDFS 블록

SungWookKang 2019. 11. 16. 00:49
반응형

HDFS 블록

 

·       Version : HDFS

 

HDFS 파일은 지정한 크기의 블록으로 나누어지고, 블록은 독립적으로 저장된다. HDFS 블록의 기본 사이즈는 128MB이며 수정이 가능하다. 블록이 이유는 탐색 비용을 최소화 있기 때문인데, 블록이 크면 하드 디스크에서 블록의 시작점을 탐색하는데 걸리는 시간을 줄일 있고, 네트워크를 통해 데이터를 전송하는데 많은 시간을 할당할 있다. 여러개의 블록으로 구성된 대용량 파일을 전송하는 시간은 디스크 I/O 속도에 크게 영향을 받게 된다. 아래 그림은 64MB 설정된 HDFS 블록에 160MB 저장할때 블록 단위로 나누어져 저장된다.

 

블록 단위로 파일을 나누어 저장하면 파일 하나의 크기가 단일 디스크의 크기보다 크더라도 저장할 있다. 또한 스토리지 서브시스템을 단순하게 만들 있기 때문에 메타정보를 가지고 파일의 위치를 쉽게 찾을 있다. (메타정보는 네임노드에 저장되며 HDFS SPOF 이무로 HA 구성을 권장한다.) 아래 그림은 HDFS 블록을 복제하는 것으로 HDFS 기본 복제단위는 3개로 구성되어 있다.

 

데이터노드는 주기적으로 블록 스캐너를 실행하여 블록의 체크섬을 확인하고 오류가 발생하면 수정한다. 데이터노드에 저장된 데이터 자주 사용되는 블록은 블록 캐시(block cache)라는 데이터 노드의 메모리에 명시적으로 캐싱할 있다. 파일 단위로도 캐싱할 있어 조인에 사용되는 데이터들을 캐싱하여 읽기 성능을 높일 있다.

# pool 등록

$ hdfs cacheadmin -addPool pool1

Successfully added cache pool pool1.

 

# path 등록

$ hdfs cacheadmin -addDirective -path /user/hadoop/shs -pool pool1

Added cache directive 1

 

# 캐쉬 확인

 hdfs cacheadmin -listDirectives

Found 1 entry

 ID POOL    REPL EXPIRY  PATH            

  1 pool1      1 never   /user/hadoop/shs

 

 

 

 

2019-11-15 / Sungwook Kang / http://sungwookkang.com

 

Hadoop, 하둡, HDFS, 하둡 파일 저장, HDFS Block

반응형

'SW Engineering > Hadoop' 카테고리의 다른 글

NameNode and Secondary NameNode Heap Memory Size 변경  (0) 2019.11.20
Hadoop Name Node  (0) 2019.11.19
HDFS 파일 저장(로컬 업로드)  (0) 2019.11.14
Cloudera Hadoop 6.3.0 Install  (0) 2019.11.14
하둡실행  (0) 2015.07.22