분산처리/빅데이터-하둡, 하이브로 시작하기

2-3) HDFS 기능 1

busy맨 2023. 7. 17. 16:53

1. HDFS Federation

  • 디렉토리(네임 스페이스) 단위로 네임노드를 등록하여 사용하는 것
  • 파일, 디렉토리의 정보를 가지는 네임 스페이스와 블록의 정보를 가지는 블록 풀을 각 네임 노드가 독립적으로 관리
  • 네임스페이스의 블록풀을 네임스페이스 볼륨이라고 하고, 네임스페이스 볼륨은 독립적으로 관리되기 때문에
    하나의 네임노드에 문제가 생겨도 다른 네임노드에 영향 X
  • ex) user, hadoop, tmp 3개의 디렉토리가 존재할 때, /user, /hadoop, /tmp 디렉토리 단위로 총 3개의 네임노드를 통해 파일을 관리

2. HDFS 고가용성(High Availability)

  • 고가용성
    • 서버, 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간동안 지속적으로 정상 운영이 가능한 성질
  • 고가용성은 이중화된 두 대의 서버인 Active 네임노드와 Stanby 네임노드를 통해 지원
  • Active 네임노드와 Stanby 네임노드는 데이터 노드로부터 블록 리포트와 하트비트를 모두 받아서 동일한
    메타데이터를 유지하고, 공유 스토리지를 이용하여 Edits 파일을 공유
    1. Active네임노드는 네임노드의 역할을 수행하고, Stanby 네임노드는 동일한 메타데이터 정보를 유지
    2. Active 네임노드에 문제가 발생하면 Stanby 네임노드가 네임노드로써 동작
      • Active에 문제가 발생하는 것을 자동으로 확인하는 것이 어려우므로 zookeeper를 통해 자동 변경
  • 고가용성 모드에서 세컨더리 네임노드를 실행하면 오류 발생
    • Stanby 네임노드가 세컨더리 네임노드의 역할과 동일하게 수행하기 때문

3. HDFS 세이프모드

  • 데이터 노드를 수정할 수 없는 상태를 의미
  • 세이프모드가 되면 데이터는 읽기 전용 상태가 되고, 데이터 추가, 수정, 복제 불가능
  • 관리자가 서버 운영 정비를 위해 설정하거나, 네임노드에 문제 발생 시 자동으로 세이프모드 전환
# 세이프 모드 상태 확인 
$ hdfs dfsadmin -safemode get
Safe mode is OFF

# 세이프 모드 진입 
$ hdfs dfsadmin -safemode enter
Safe mode is ON

# 세이프 모드 해제 
$ hdfs dfsadmin -safemode leave
Safe mode is OFF

4.  HDFS 데이터 블록 관리

1.커럽트 블록(Corrupt)

  • 모든 복제 블록에 문제가 생겨서 복구하지 못하게 되면 커럽트 상태가 됨
  • 커럽트 상태의 파일은 삭제하고, 원본 파일을 HDFS에 올려주어야 함
  • 커럽트 상태 확인
# 루트의 상태 체크 
$ hdfs fsck /

# /user/hadoop/ 디렉토리의 상태 체크 
$ hdfs fsck /user/hadoop/

Status: HEALTHY
 Total size:    1378743129 B
 Total dirs:    612
 Total files:   2039
 Total symlinks:        0
 Total blocks (validated):  2039 (avg. block size 676185 B)
 Minimally replicated blocks:   2039 (100.0 %)
 Over-replicated blocks:    0 (0.0 %)
 Under-replicated blocks:   2039 (100.0 %)
 Mis-replicated blocks:     0 (0.0 %)
 Default replication factor:    2
 Average block replication: 1.0
 Corrupt blocks:        0
 Missing replicas:      4004 (66.258484 %)
 Number of data-nodes:      1
 Number of racks:       1
FSCK ended at Thu Dec 06 05:31:42 UTC 2018 in 37 milliseconds


The filesystem under path '/user/hadoop' is HEALTHY
  • 커럽트 파일 삭제
The filesystem under path '/user/hadoop' is CORRUPT

# 커럽트 상태의 파일 삭제 
$ hdfs fsck -delete

# /user/hadoop/ 의 복제 개수를 5로 조정 
$ hadoop fs -setrep 5 /user/hadoop/
# /user/hadoop/ 하위의 모든 파일의 복제 개수를 조정 
$ hadoop fs -setrep 5 -R /user/hadoop/

 

2.복제 개수 부족(Under replicated)

  • 파일에 지정된 복제 개수만큼 데이터 블록에 복제되지 않았을 때 발생
# /user/hadoop/ 의 복제 개수를 5로 조정 
$ hadoop fs -setrep 5 /user/hadoop/

# /user/hadoop/ 하위의 모든 파일의 복제 개수를 조정 
$ hadoop fs -setrep 5 -R /user/hadoop/

5. HDFS 휴지통

  • 사용자의 실수에 의한 파일 삭제를 방지하기 위해 휴지통 기능 제공
  • 바로 삭제되지 않고, 휴지통 아래의 파일은 복구 가능
# 휴지통을 비움. 
$ hadoop fs -expunge

# 휴지통을 이용하지 않고 삭제 
$ hadoop fs -rm -skipTrash /user/data/file

 

'분산처리 > 빅데이터-하둡, 하이브로 시작하기' 카테고리의 다른 글

3) 맵리듀스  (0) 2023.07.27
2-4) HDFS 기능 2  (0) 2023.07.18
2-3) 블록과 세컨더리 네임노드  (0) 2023.07.16
2-2) HDFS  (0) 2023.07.16
2-1) 하둡이란?  (0) 2023.07.16