결론
HDFS 파일 시스템에서 용량을 확보하기 위해서는 휴지통도 비워야 한다.
문제 상황)
여러 번 실습을 반복하는 과정에서 어느 순간 Data가 업로드가 되지 않았다.
HDFS 가용 공간은 (30GB*3) 총 90GB 로 현재 프로젝트를 진행하는데 문제없는 용량이었다.
지금은 용량이 11G 정도로 보이지만 내가 오류를 겪었을 때는 600MB 정도 밖에 남아있지 않았다.
그러니 5GB 용량의 데이터 셋을 hdfs에 업로드 하려고 해도 업로드가 되지 않았던 것이다…
문제 해결 과정)
시도1
HDFS에 있는 파일을 삭제했다. 기존에 실습 과정에서 테스트 과정도 여러 번 진행하는 바람에 불필요한 데이터가 쌓였다고 생각했다.
결과1
하지만 여전히 같은 이유로 데이터가 업로드 되지 않았다.
시도2
현 상황을 구글링을 통해 살펴본 결과… HDFS에는 쓰레기 통이 있었다. 사용자의 실수로 인한 데이터 손실을 방지하기 위해 만들어진 일종의 안전장치인데… 이것이 문제였던 것 같다.
hdfs dfs -expunge
.Trash 폴더가 HDFS의 휴지통이다. 휴지통을 강제로 비워주는 명령어를 통해 삭제 후 다시 업로드 진행!
결과2
여전히 비워지지 않은 상태를 확인했다.
시도3
휴지통 자체를 삭제하는 작업을 진행했다.
hdfs dfs -rm -r /user/ubuntu/.Trash
결과3
데이터가 삭제되었다!
데이터를 삭제한 후 확인해보니 용량이 돌아온 것을 확인했다!
휴지통을 이용하지 않고 삭제하는 방법)
# 휴지통을 이용하지 않고 삭제
$ hadoop fs -rm -skipTrash /user/data/file
휴지통 설정(휴지통 기능을 off)
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
<property>
<name>fs.trash.checkpoint.interval</name>
<value>120</value>
</property>
더보기
설정값 | 비고 |
fs.trash.interval | 체크포인트를 삭제하는 시간 간격(분). 0이면 휴지통 기능을 끔. |
fs.trash.checkpoint.interval | 체크포인트를 확인하는 간격(분). fs.trash.interval과 같거나 작아야 함. 체크포인터가 실행될 때마다 체크포인트를 생성하고, 유효기간이 지난 체크포인트는 삭제. |
'데엔(Data-Engineering) > 하둡(Hadoop)' 카테고리의 다른 글
Failover controller란? (0) | 2023.04.09 |
---|---|
HDFS 휴지통 (1) | 2023.04.09 |
네임노드 & 데이터노드 (0) | 2023.04.08 |
Manager 전환 이슈 (0) | 2023.04.08 |
Why Hadoop? (0) | 2022.11.08 |
댓글