이름 노드가 안전 모드에 있습니다. 떠날 수 없다
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
무엇이 문제입니까?
네임 노드를 강제로 안전 모드를 벗어나게하려면 다음 명령을 실행해야합니다.
bin/hadoop dfsadmin -safemode leave
의 하위 명령이 아니기 때문에 Unknown command
명령에 오류 가 발생 했지만의 오류 입니다 .-safemode
hadoop fs
hadoop dfsadmin
또한 위의 명령 후에 hadoop fsck
hdfs에 기록 된 불일치가 정리 될 수 있도록 한 번 실행하는 것이 좋습니다 .
최신 정보:
최신 배포 에는 hdfs
명령 대신 hadoop
명령을 사용하십시오 . 이 hadoop
명령은 더 이상 사용되지 않습니다.
hdfs dfsadmin -safemode leave
hadoop dfsadmin
더 이상 사용되지 않으며 hadoop fs
명령도 마찬가지입니다 . 모든 hdfs 관련 작업이 별도의 명령으로 이동되고 hdfs
있습니다.
이것을 시도, 그것은 작동합니다
sudo -u hdfs hdfs dfsadmin -safemode leave
사령부는 나를 위해 작동하지 않았지만 다음은
hdfs dfsadmin -safemode leave
hdfs
명령 대신 명령을 사용했습니다 hadoop
.
http://ask.gopivotal.com/hc/en-us/articles/200933026-HDFS-goes-into-readonly-mode-and-errors-out-with-Name-node-is-in-safe-를 확인하십시오 mode- 링크도
위의 Hadoop 버전 2.6.1을 사용하는 경우 명령이 작동하는 동안 감가 상각되었다고 불평합니다. hadoop dfsadmin -safemode leave
Docker 컨테이너에서 Hadoop을 실행 중이 어서 컨테이너에서 실행할 때 그 명령이 마술처럼 실패하기 때문에 실제로 사용할 수 없었습니다 . 문서를 확인하고 다음과 같은 문서에서 발견 dfs.safemode.threshold.pct
했습니다.
dfs.replication.min으로 정의 된 최소 복제 요구 사항을 충족해야하는 블록의 백분율을 지정합니다. 0보다 작거나 같은 값은 안전 모드를 종료하기 전에 특정 비율의 블록을 기다리지 않음을 의미합니다. 1보다 큰 값은 안전 모드를 영구적으로 만듭니다.
그래서 hdfs-site.xml
다음으로 변경했습니다 (이전 Hadoop 버전에서는 분명히해야합니다 hdfs-default.xml
:
<configuration>
<property>
<name>dfs.safemode.threshold.pct</name>
<value>0</value>
</property>
</configuration>
이 시도
sudo -u hdfs hdfs dfsadmin -safemode leave
안전 모드 상태 확인
sudo -u hdfs hdfs dfsadmin -safemode get
여전히 안전 모드에 있다면 그 이유 중 하나가 노드의 공간이 충분하지 않은 경우 다음을 사용하여 노드 디스크 사용량을 확인할 수 있습니다.
df -h
루트 파티션이 가득 찬 경우 파일을 삭제하거나 루트 파티션에 공간을 추가 한 후 첫 단계를 다시 시도하십시오.
메모리가 부족하면 네임 노드는 안전 모드로 들어갑니다. 결과적으로 HDFS는 읽을 수있게됩니다. 즉, HDFS에서 추가 디렉토리 나 파일을 만들 수 없습니다. 안전 모드에서 나오려면 다음 명령이 사용됩니다.
hadoop dfsadmin -safemode leave
cloudera 관리자를 사용중인 경우 :
go to >>Actions>>Leave Safemode
그러나 항상 문제가 해결되는 것은 아닙니다. 완전한 솔루션은 메모리에 약간의 공간을 확보하는 데 있습니다. 다음 명령을 사용하여 메모리 사용량을 확인하십시오.
free -m
cloudera를 사용하는 경우 HDFS가 건강에 좋지 않은 증상을 보이는지 확인할 수도 있습니다. 아마도 네임 노드와 관련된 메모리 문제를 보여 주어야합니다. 사용 가능한 옵션을 따라 더 많은 메모리를 할당하십시오. cloudera manager를 사용하지 않지만 방법이 있어야하는 경우 동일한 명령을 사용할 명령을 잘 모르겠습니다. 그것이 도움이되기를 바랍니다! :)
safe mode on means (HDFS is in READ only mode)
safe mode off means (HDFS is in Writeable and readable mode)
In Hadoop 2.6.0
, we can check the status of name node with help of the below commands:
TO CHECK THE name node status
$ hdfs dfsadmin -safemode get
TO ENTER IN SAFE MODE:
$ hdfs dfsadmin -safemode enter
TO LEAVE SAFE mode
~$ hdfs dfsadmin -safemode leave
Run the command below using the HDFS OS user to disable safe mode:
sudo -u hdfs hadoop dfsadmin -safemode leave
use below command to turn off the safe mode
$> hdfs dfsadmin -safemode leave
참고URL : https://stackoverflow.com/questions/15803266/name-node-is-in-safe-mode-not-able-to-leave
'programing tip' 카테고리의 다른 글
JavaScript를 사용하여 HTML에서 textArea에 maxlength를 적용하는 방법 (0) | 2020.07.21 |
---|---|
플래그 열거 형이 일반적으로 16 진 값으로 정의되는 이유 (0) | 2020.07.21 |
android 조각 onRestoreInstanceState (0) | 2020.07.21 |
Google 웹 로그 분석에서 웹 사이트를 삭제하는 방법 (0) | 2020.07.21 |
SQL 스크립트 오류 : 배치 당 하나의 명령문 만 허용됩니다. (0) | 2020.07.21 |