2017-12-18 15 views
0

hadoop 2.9.0으로 POC를 분산 파일 저장 시스템으로 사용하므로 하나의 namenode 및 복제 계수가 2 인 4 개의 데이터 노드 (마스터 포함).hdfs 데이터 노드가 잠시 동안 다운 된 후 다시 시작하는 경우 로컬 디스크 공간을 회수하지 않음

이제 일련의 복사 작업 후 datanode (slave2) 중 하나를 중지하기로 결정했습니다. 그리고 나서 slave2가 여전히 다운되었을 때 hdfs dfs -rm -skipTrash 명령을 사용하여 몇 GB의 데이터를 정리했습니다.

나중에 내가 중지 한 slave2 데이터 노드가 다시 시작되었으며 작동 중지 시간 동안 hdfs에서 삭제 된 데이터 블록이 정리되지 않은 것처럼 보입니다.

더 많은 데이터를 추가/삭제하면서 master namenode와 동기화되는지 확인하고 로컬 정리를 수행하여 디스크 공간을 되찾았지만 그렇지 않은 경우를 보았습니다.

slave2 :

[email protected]:~$ hdfs dfs -du -s -h/
4.5 G/
[email protected]:~$ du -sh /hadoop-tmp/ 
7.7G /hadoop-tmp/ [<-- notice extra 2.2 GB of data present on local disk] 

마스터 :

[email protected]:~$ du -sh /hadoop-tmp/ 
4.6G /hadoop-tmp/ 
[email protected]:~$ hdfs dfs -du -s -h/
4.5 G/

SLAVE1 :

아래

각 노드에 데이터 소비 있습니다

[email protected]:~$ hdfs dfs -du -s -h/
4.5 G/
[email protected]:~$ du -sh /hadoop-tmp/ 
4.5G /hadoop-tmp/ 

slave3 :

[email protected]:/$ du -sh /hadoop-tmp/ 
2.8G /hadoop-tmp/ 
[email protected]:/$ hdfs dfs -du -s -h/
4.5 G/

여기 내 질문이 로컬에서 삭제 된 데이터 블록을 저장 한 것을 인정하는 마스터 네임 노드와 동기화하기 위해 수행 datenode slave2 얼마나 많은 시간을 "추측 HDFS 클러스터가 필요하므로 정리해야합니다. 그리고 그런 일이 계속되는 경우 시간이 초과되면 동기화 시간을 제어 할 수 있습니까? "

그리고 그런 일이 발생하지 않으면 데이터 노드에서 디스크 공간을 재생하는 과정이 중단 된 후 다시 복원됩니다. 잠시?

답변

0

당신은 클러스터에 일치하지 않는 블록을 식별하고 데이터가 더 이상 유지하기위한 것 인 경우 남긴 블록을 삭제하기 위해 필요한 조치를 취하지하는 FSCK를 실행하는 것이 좋습니다.

+0

내가하고 시도 FSCK하지만 도움이되지는 않지만 어느정도 시간이 지나면 공간이 해제된다는 것을 알았지 만 (0 바이트가 아니라면 적어도 몇 MB까지), 그것이 도움이되는지 확신 할 수는 없지만 행동 또는 아닙니다. – sactiw