[HADOOP] 이름 노드가 안전 모드입니다. 떠날 수 없다.
HADOOP이름 노드가 안전 모드입니다. 떠날 수 없다.
root# bin/hadoop fs -mkdir t
mkdir: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/root/t. Name node is in safe mode.
hdfs에서 아무것도 만들 수 없다.
내가 그랬어.
root# bin/hadoop fs -safemode leave
그러나 보여주는
safemode: Unknown command
문제가 뭐야?
해결책
해결법
-
==============================
1.강제로 namenode가 safemode를 떠나게하려면 다음 명령을 실행해야합니다.
강제로 namenode가 safemode를 떠나게하려면 다음 명령을 실행해야합니다.
bin/hadoop dfsadmin -safemode leave
-safemode는 hadoop fs의 하위 명령이 아니지만 hadoop dfsadmin의 명령이므로 알 수없는 명령 오류가 발생합니다.
또한 위의 명령을 수행 한 후에는 hdfs에 들어있는 불일치가 분류 될 수 있도록 hadoop fsck을 한 번 실행하는 것이 좋습니다.
최신 정보:
더 새로운 배포판의 경우 hadoop 명령 대신 hdfs 명령을 사용하십시오. hadoop 명령은 더 이상 사용되지 않습니다.
hdfs dfsadmin -safemode leave
hadoop dfsadmin은 더 이상 사용되지 않으며 hadoop fs 명령이므로 모든 hdfs 관련 작업이 별도의 명령 인 hdfs로 이동됩니다.
-
==============================
2.이걸 시도해 보면 효과가있다.
이걸 시도해 보면 효과가있다.
sudo -u hdfs hdfs dfsadmin -safemode leave
-
==============================
3.명령은 나를 위해 작동하지 않았지만 다음과 같이했다.
명령은 나를 위해 작동하지 않았지만 다음과 같이했다.
hdfs dfsadmin -safemode leave
hadoop 명령 대신 hdfs 명령을 사용했습니다.
http://ask.gopivotal.com/hc/en-us/articles/200933026-HDFS-goes-into-readonly-mode-and-errors-out-with-with-Name-node-is-in-safe-를 확인하십시오. 모드 링크
-
==============================
4.위의 Hadoop 버전 2.6.1을 사용하는 경우 명령이 작동하는 동안 값이 낮아진다는 오류가 발생합니다. Docker 컨테이너에서 Hadoop을 실행했기 때문에 실제로 hadoop dfsadmin -safemode leave를 사용할 수 없었습니다.이 명령은 컨테이너에서 실행될 때 마술처럼 실패합니다. 나는 doc을 확인하고 dfs.safemode.threshold.pct를 찾았다.
위의 Hadoop 버전 2.6.1을 사용하는 경우 명령이 작동하는 동안 값이 낮아진다는 오류가 발생합니다. Docker 컨테이너에서 Hadoop을 실행했기 때문에 실제로 hadoop dfsadmin -safemode leave를 사용할 수 없었습니다.이 명령은 컨테이너에서 실행될 때 마술처럼 실패합니다. 나는 doc을 확인하고 dfs.safemode.threshold.pct를 찾았다.
그래서 hdfs-site.xml을 다음과 같이 변경했습니다 (이전 Hadoop 버전에서는 분명히 hdfs-default.xml에서 수행해야합니다.
<configuration> <property> <name>dfs.safemode.threshold.pct</name> <value>0</value> </property> </configuration>
-
==============================
5.이 시도
이 시도
sudo -u hdfs hdfs dfsadmin -safemode leave
안전 모드의 상태를 확인한다.
sudo -u hdfs hdfs dfsadmin -safemode get
여전히 안전 모드에있는 경우 이유 중 하나가 노드 공간이 충분하지 않은 경우 다음을 사용하여 노드 디스크 사용량을 확인할 수 있습니다.
df -h
루트 파티션이 가득 찬 경우 파일을 삭제하거나 루트 파티션에 공간을 추가하고 첫 번째 단계를 다시 시도하십시오.
-
==============================
6.메모리가 부족하면 네임 노드가 안전 모드로 진입합니다. 결과적으로 HDFS는 읽기 전용이됩니다. 즉, HDFS에 추가 디렉토리 나 파일을 만들 수 없습니다. 안전 모드에서 나오려면 다음 명령을 사용하십시오.
메모리가 부족하면 네임 노드가 안전 모드로 진입합니다. 결과적으로 HDFS는 읽기 전용이됩니다. 즉, HDFS에 추가 디렉토리 나 파일을 만들 수 없습니다. 안전 모드에서 나오려면 다음 명령을 사용하십시오.
hadoop dfsadmin -safemode leave
cloudera 관리자를 사용하는 경우 :
go to >>Actions>>Leave Safemode
그러나 항상 문제를 해결하는 것은 아닙니다. 완벽한 솔루션은 메모리 공간을 만드는 데 있습니다. 다음 명령을 사용하여 메모리 사용량을 확인하십시오.
free -m
cloudera를 사용하는 경우, HDFS가 나쁜 건강 상태의 징후를 보이는지 확인할 수 있습니다. 아마도 namenode와 관련된 메모리 문제를 보여줘야합니다. 사용 가능한 옵션을 따라 더 많은 메모리를 할당하십시오. 나는 cloudera manager를 사용하지 않는다면 어떤 명령어를 사용해야할지 모르지만 방법이 있어야합니다. 희망이 도움이됩니다! :)
-
==============================
7.안전 모드 on 수단 (HDFS는 READ 전용 모드 임) 안전 모드 꺼짐 (HDFS가 쓰기 가능 및 읽기 가능 모드에 있음)
안전 모드 on 수단 (HDFS는 READ 전용 모드 임) 안전 모드 꺼짐 (HDFS가 쓰기 가능 및 읽기 가능 모드에 있음)
Hadoop 2.6.0에서는 다음 명령을 사용하여 name 노드의 상태를 확인할 수 있습니다.
이름 노드 상태를 확인하려면
$ hdfs dfsadmin -safemode get
안전 모드로 들어가려면 :
$ hdfs dfsadmin -safemode enter
안전 모드를 벗어나려면
~$ hdfs dfsadmin -safemode leave
-
==============================
8.HDFS OS 사용자를 사용하여 아래 명령을 실행하여 안전 모드를 비활성화하십시오.
HDFS OS 사용자를 사용하여 아래 명령을 실행하여 안전 모드를 비활성화하십시오.
sudo -u hdfs hadoop dfsadmin -safemode leave
-
==============================
9.아래 명령을 사용하여 안전 모드를 끕니다.
아래 명령을 사용하여 안전 모드를 끕니다.
$> hdfs dfsadmin -safemode leave
from https://stackoverflow.com/questions/15803266/name-node-is-in-safe-mode-not-able-to-leave by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Java 프로그램에서 Sqoop을 사용하는 방법? (0) | 2019.05.28 |
---|---|
[HADOOP] 각 파티션의 요소 수가 같은 동일한 크기의 파티션으로 구성된 Spark RDD의 사용자 정의 파티션을 정의하는 방법은 무엇입니까? (0) | 2019.05.28 |
[HADOOP] hadoop의 모든 액션 전에 ugi.checkTGTAndReloginFromKeytab ()을 호출해야합니까? (0) | 2019.05.28 |
[HADOOP] 기술적으로 s3n, s3a 및 s3의 차이점은 무엇입니까? (0) | 2019.05.28 |
[HADOOP] Hive에서 테이블 분할 및 버킷 팅의 차이점은 무엇입니까? (0) | 2019.05.28 |