2014-04-27 8 views
3

cloudera의 VM을 사용하여 hadoop을 실행하고 있습니다. dfs 공간의 99 %가 모두 사용되었습니다. 그래서 파일을 삭제해야하지만 파일을 삭제하려면 안전 모드를 해제해야합니다. 안전 모드가 켜져 있기 때문에 dfs에서 파일을 삭제할 수 없습니다.

나는, 다음 명령을 사용하여 안전 모드를 해제하려
sudo -u hdfs hdfs dfsadmin -safemode leave 

그것은 그가 꺼져 있지만 부족으로 인해 공간이 자동으로 켜지되어있다. 그리고 파일 삭제를 시도 할 때 안전 모드가 켜져 있기 때문에 파일을 삭제할 수 없다고 말합니다.

SafeModeException: Cannot create directory /user/cloudera/.Trash/Current. Name node is in safe mode. Resources are low on NN. Please add or free up more resources then turn off safe mode manually. NOTE: If you turn off safe mode before adding resources, the NN will immediately return to safe mode.. (error 403) 

파일을 삭제하려면 안전 모드를 해제해야합니다. 안전 모드를 끄려면 공간을 확보해야합니다! 그렇다면 더 많은 공간을 확보하기 위해 파일을 정리하는 방법은 무엇입니까?

답변

1

HDFS가 단순히 하드 드라이브의 디스크 공간을 사용한다는 것을 알아야합니다. 따라서 단일 노드 시스템에서 HDFS가 채워지면 로컬 디스크도 꽉 찼습니다.

이 아닌 HDFS 파일을 제거하여 정리 파일을 할 수있는 경우에 시도 (대한 예는/var/log/...)

1

당신은 일시적으로 낮은 값으로 다음과 같은 옵션을 설정하여 안전 모드를 트리거 임계 값을 낮추는 시도 할 수 있습니다 :

dfs.safemode.threshold.pct 
dfs.namenode.safemode.threshold-pct 

또한 NameNode는 퇴근 직후 안전 모드로 돌아 가지 않을 수 있습니다. 내 경우에는 hdfs dfsadmin -safemode leavehdfs dfs -rm 명령을 함께 묶어서 정리할 수있었습니다.

sudo su hdfs 
hdfs dfsadmin -safemode leave; hdfs dfs -rm -skipTrash /path/to/stuff/to/delete 
관련 문제