티스토리 뷰

반응형

하둡을 사용하다보면 디스크 사용량이 70%를 넘어서기 시작하면 장애가 생기는 경우가 은근히 많다.

그리고, 클러스터의 모니터링 알람같은걸 해두면 알람도 많이 오기 때문에 물리적인 디스크 공간을 확보해야 할 필요가 있다. 이때 가장 먼저 삭제시도할 폴더는 HDFS 의 휴지통 공간이다.

휴지통 용량 확인 & 비우기

다음과 같이 hdfs 의 .Trash 를 확인해보면 그 용량이 꽤 무시못한다. 

참고로, "hadoop fs -rm -f <경로>" 형태로 지우면, 바로 삭제되는게 아니라 .Trash 폴더로 옮겨지고 특정 기간이 지나면 삭제되는 구조다. 그래서 보통 데이터 마이그레이션과 같이 파일을 많이 복사하고 삭제하는게 반복되면 생각보다 여기에 쌓이는 공간이 꽤 크다.

 

그래서 hdfs 공간이 부족하면 일단 응급처치(?)는 휴지통부터 비워야 한다.  유저별로 공간이 생기기 때문에 다음과 같이 용량을 체크하고 큰 녀석위주로 수동으로 삭제할 수도 있고,

-------------------------------
-- user 별 .Trash 용량 확인해 보기
-------------------------------
% hadoop fs -du -h /user/*/.Trash
0  0  /user/hdfs/.Trash/170217090001
474.7 G  1.4 T    /user/input-data/.Trash/170217090002
55.1 G   165.4 G  /user/output-data/.Trash/Current
22.1 G   66.2 G  /user/hive/.Trash/Current
0  0  /user/hue/.Trash/170217090003
0  0  /user/hue/.Trash/Current
291.7 G  875.0 G  /user/myUser/.Trash/170217090003
30.6 G   91.9 G   /user/myUser/.Trash/Current
2.3 T    7.0 T    /user/scott/.Trash/170217090003
250.6 G  751.9 G  /user/scott/.Trash/Current

다음과 같이 휴지통을 비우는 명령을 실행할 수도 있다.

hadoop fs -expunge

 

바로 삭제하려면? -skipTrash

보통은 데이터 마이그레이션이나 장애복구를 할때 용량 부족이 많이 일어나는편이라, 중간파일을 삭제할때 휴지통에 넣지 않고 바로 삭제 하는것도 가능하다. 이땐는 다음과 같이 -skipTrash 옵션을 추가해서 삭제하면 된다.

hadoop fs -rm -R -skipTrash <folder-path>

 

휴지통 비우는 주기 변경하기

-skipTrash 옵션을 쓸때 실수로 root 폴더를 쓰면 대재앙이 일어나기 때문에 찜찜한데 데이터 노드는 늘려줄 생각을 안한다면 선택할 수 있는 선택지는 hdfs 설정(core-site.xml) 을 변경하는것이다.

<property>
    <name>fs.trash.interval</name>
    <value>1440</value>
</property>
<property>
    <name>fs.trash.checkpoint.interval</name>
    <value>120</value>
</property>

이 관련된 내용은 아래 링크에 설명이 잘 되어있는편이다.

https://wikidocs.net/33948

 

06-HDFS 휴지통

HDFS는 사용자의 실수에 의한 파일 삭제를 방지하기 위해서 휴지통 기능을 제공합니다. 휴지통 기능이 설정되면 HDFS에서 삭제한 파일은 바로 삭제되지 않고, 각 사용자 ...

wikidocs.net

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함