HDFS 커럽션 파일 확인
· Version : Hadoop 3.0.0-cdh6.3.2
HDFS 운영중 데이터 노드에 문제가 있어 데이터 블록이 손실(정확히는 파일은 있으나 관리할 수 없는 상태)이 발생할 수 있다. 이러한 경우는 커럽트(Corrupt) 상태라 한다. 일반적으로 HDFS는 3중화 복제를 사용하기 때문에, 하트비트를 통해 데이터 블록에 문제가 발생하면 자동으로 감지하고 다른 데이터 노드의 복제본을 사용하여 복구를 진행 한다. 하지만 모든 블록에 문제가 발생하여 복구를 하지 못하는 경우 커럽트 상태가 된다. 커럽트 상태의 파일은 삭제하고 원본을 다시 업로드하여 복구해야 한다.
아래 스크립트는 현재 커럽트 블록이 있는지 확인할 수 있는 명령이다. 예제에는 hdfs 내부의 /user/data/ 디렉터리에 있는 블록을 검사한다.
hdfs fsck /검색디렉터리 Ex) hdfs fsck /user/data/ |
fsck 명령을 실행하면 커럽트 상태(Corrupt blocks) 및 복제 개수(Missing replicas)가 부족한 블록의 정보를 확인할 수 있다.
Status: HEALTHY Number of data-nodes: 8 Number of racks: 1 Total dirs: 1 Total symlinks: 0
Replicated Blocks: Total size: 0 B Total files: 0 Total blocks (validated): 0 Minimally replicated blocks: 0 Over-replicated blocks: 0 Under-replicated blocks: 0 Mis-replicated blocks: 0 Default replication factor: 3 Average block replication: 0.0 Missing blocks: 0 Corrupt blocks: 0 Missing replicas: 0 Blocks queued for replication: 0
Erasure Coded Block Groups: Total size: 0 B Total files: 0 Total block groups (validated): 0 Minimally erasure-coded block groups: 0 Over-erasure-coded block groups: 0 Under-erasure-coded block groups: 0 Unsatisfactory placement block groups: 0 Average block group size: 0.0 Missing block groups: 0 Corrupt block groups: 0 Missing internal blocks: 0 Blocks queued for replication: 0 FSCK ended at Mon Dec 09 07:38:50 PST 2019 in 1 milliseconds |
Corrupt blocks 상태가 0보다 크다면 커럽트 블록이 있는 상태이며, 이 경우delete 명령을 사용하여 커럽트 블록을 삭제할 수 있다.
hdfs fsck -delete |
Corrupt blocks 및 Missing replicas 문제를 방지하기 위해 복제의 개수를 늘리면 효과가 있다. 하지만 데이터 노드보다 복제 개수를 더 많이 지정하면 문제가 발생할 수 있다. 아래 명령으로 복제의 개수를 조절할 수 있다.
hdoop fs -setrep 5 -R /user/data/ |
[참고자료]
https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html#fsck
2019-12-09 / Sungwook Kang / http://sungwookkang.com
Hadoop, HDFS corrupts, hdfs fsck, 하둡 커럽트, 하둡 데이터 파일 오류, 커럽트 파일
'SW Engineering > Hadoop' 카테고리의 다른 글
Hive CLI (0) | 2019.12.12 |
---|---|
HDFS Safe 모드 (0) | 2019.12.11 |
HDFS에서 파일 삭제시 바로 삭제 될까? (휴지통 기능) (0) | 2019.12.06 |
HDFS 고가용성 (High Availability) 개념 (0) | 2019.12.05 |
Python으로 Hive 연결하기 (0) | 2019.12.04 |