programing tip

이름 노드가 안전 모드에 있습니다.

itbloger 2020. 7. 21. 08:06
반응형

이름 노드가 안전 모드에 있습니다. 떠날 수 없다


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명령에 오류 발생 했지만의 오류 입니다 .-safemodehadoop fshadoop dfsadmin

또한 위의 명령 후에 hadoop fsckhdfs에 기록 된 불일치가 정리 될 수 있도록 한 번 실행하는 것이 좋습니다 .

최신 정보:

최신 배포 에는 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 leaveDocker 컨테이너에서 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

반응형