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

2. HDFS 고가용성(High Availability)
- 고가용성
- 서버, 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간동안 지속적으로 정상 운영이 가능한 성질
- 고가용성은 이중화된 두 대의 서버인 Active 네임노드와 Stanby 네임노드를 통해 지원
- Active 네임노드와 Stanby 네임노드는 데이터 노드로부터 블록 리포트와 하트비트를 모두 받아서 동일한
메타데이터를 유지하고, 공유 스토리지를 이용하여 Edits 파일을 공유- Active네임노드는 네임노드의 역할을 수행하고, Stanby 네임노드는 동일한 메타데이터 정보를 유지
- 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 |