[Hadoop] 데이터 블록 관리

최지영·2022년 8월 14일
0

📃 Hadoop 데이터 블록 관리하기

HDFS를 운용하다 보면 데이터 블록에 문제가 생기는 경우가 종종 있다( 비정상 종료 등등)

이러한 충돌 문제가 일어나는 것은 CORRUPT 상태와 복제 개수 부족일 때 일어난다. HDFS는 일반적으로 데이터 블록에 문제가 발생 하는 경우 다른 데이터 노드의 복제되어있는 데이터를 가져와 복구를 하지만 복제가 되어있는 모든 데이터 블록에 문제가 있는 경우에 CORRUPT 상태가 된다. 이러한 상황일때 커럽트 파일들을 삭제하고 원본 파일을 다시 HDFS로 올려준다.

fsck란?

`file system check'의 약자로 리눅스 파일시스템에서 파일을 체크하고 수리하는 명령이다. 도스의 chkdsk나 scandisk명령과 유사하다.

HDFS에서도 위처럼 fsck 커맨드를 지원하는데 CORRUPT 문제를 해결하기 위해 fsck 커맨드를 활용한다.

# 루트의 상태 체크 
$ 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

상태를 확인하고, 커럽트 상태 이면 hdfs fsck -delete 명령을 이용하여 커럽트 상태의 블록을 삭제 커럽트 상태의 방지를 위해서 중요한 파일은 복제 개수를 늘려주면 좋습니다. hadoop fs -setrep 명령을 이용하여 처리합니다.

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/

0개의 댓글