[HADOOP] 네임 노드 형식이 데이터 노드 디스크 공간을 비우지 않습니다.
HADOOP네임 노드 형식이 데이터 노드 디스크 공간을 비우지 않습니다.
클러스터 ./stop-all.sh를 종료 한 후 hadoop namenode-format을 호출하면 데이터 노드의 디스크 공간이 동일합니다. 즉, 공간이 확보되지 않은 것을 알 수 있습니다.
왜 그런가요?
해결법
-
==============================
1.NameNode를 포맷하기 전에 DataNode에서 수동으로 데이터를 삭제할 수 있습니다
NameNode를 포맷하기 전에 DataNode에서 수동으로 데이터를 삭제할 수 있습니다
rmr
Usage: hadoop fs -rmr URI [URI …]
재귀 버전의 삭제 예:
hadoop fs -rmr /user/hadoop/dir hadoop fs -rmr hdfs://nn.example.com/user/hadoop/dir
종료 코드 :
성공하면 0을, 에러이면 -1을 반환합니다.
대안 적으로
이름 노드가 될 때마다 데이터 노드를 다시 포맷해야합니다. 여기에 두 가지 접근 방식이 있습니다.
https://issues.apache.org/jira/browse/HDFS-107
-
==============================
2.네임 노드를 포맷 할 때 공간이 정리되지 않습니다. 수동으로해야합니다.
네임 노드를 포맷 할 때 공간이 정리되지 않습니다. 수동으로해야합니다.
하기 위해서,
먼저 ./stop-all.sh 또는 ./stop-mapred.sh 및 ./stop-dfs.sh를 올바른 순서로 호출하여 클러스터를 중지하십시오.
그런 다음 데이터 노드의 데이터 디렉토리, 즉 hdfs-site.xml의 dfs.data.dir 또는 hadoop.tmp.dir / dfs / data에 의해 지정된 디렉토리를 삭제하십시오.
포맷을 수행하기 전에 -rmr (이 질문에 대한 다른 답변 중 하나로 지정) 옵션을 사용하는 것이 실제로 가장 좋은 방법입니다. 청소하십시오;)
-
==============================
3.네임 노드를 포맷하면 데이터 노드를 포맷하지 않습니다.
네임 노드를 포맷하면 데이터 노드를 포맷하지 않습니다.
네임 노드의 내용 만 포맷합니다. 즉, 귀하의 네임 노드는 더 이상 알 수 없습니다 데이터가있는 곳. 또한 namenode -format은 네임 스페이스에 새 네임 스페이스 ID를 할당합니다.
데이터 노드를 작동 시키려면 데이터 노드에서 namespaceID를 변경해야합니다. 이것은 dfs / data / current / VERSION에 있습니다.
네임 노드를 포맷 할 때 데이터 노드를 포맷 할 것을 제안하는 동일한 JIRA가 있습니다. HDFS-107
from https://stackoverflow.com/questions/20141331/namenode-format-does-not-free-up-datanode-disk-space by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 다른 평면 / 간단한 하이브 테이블에서 map [structs]를 사용하여 하이브 테이블을로드하는 방법 (0) | 2019.08.07 |
---|---|
[HADOOP] Hbase에서 두 테이블을 조인하는 방법 (0) | 2019.08.07 |
[HADOOP] HDFS에 파일을 저장하면 복제됩니까? (0) | 2019.08.07 |
[HADOOP] 하나의 매퍼 만 사용하는 하둡 gzip 입력 파일 [중복] (0) | 2019.08.07 |
[HADOOP] 맵 태스크가 항상 단일 노드에서 실행되는 이유 (0) | 2019.08.07 |