복붙노트

[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. ==============================

    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. ==============================

    2.이걸 시도해 보면 효과가있다.

    이걸 시도해 보면 효과가있다.

    sudo -u hdfs hdfs dfsadmin -safemode leave
    
  3. ==============================

    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. ==============================

    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. ==============================

    5.이 시도

    이 시도

    sudo -u hdfs hdfs dfsadmin -safemode leave
    

    안전 모드의 상태를 확인한다.

    sudo -u hdfs hdfs dfsadmin -safemode get
    

    여전히 안전 모드에있는 경우 이유 중 하나가 노드 공간이 충분하지 않은 경우 다음을 사용하여 노드 디스크 사용량을 확인할 수 있습니다.

    df -h
    

    루트 파티션이 가득 찬 경우 파일을 삭제하거나 루트 파티션에 공간을 추가하고 첫 번째 단계를 다시 시도하십시오.

  6. ==============================

    6.메모리가 부족하면 네임 노드가 안전 모드로 진입합니다. 결과적으로 HDFS는 읽기 전용이됩니다. 즉, HDFS에 추가 디렉토리 나 파일을 만들 수 없습니다. 안전 모드에서 나오려면 다음 명령을 사용하십시오.

    메모리가 부족하면 네임 노드가 안전 모드로 진입합니다. 결과적으로 HDFS는 읽기 전용이됩니다. 즉, HDFS에 추가 디렉토리 나 파일을 만들 수 없습니다. 안전 모드에서 나오려면 다음 명령을 사용하십시오.

    hadoop dfsadmin -safemode leave
    

    cloudera 관리자를 사용하는 경우 :

    go to >>Actions>>Leave Safemode
    

    그러나 항상 문제를 해결하는 것은 아닙니다. 완벽한 솔루션은 메모리 공간을 만드는 데 있습니다. 다음 명령을 사용하여 메모리 사용량을 확인하십시오.

    free -m
    

    cloudera를 사용하는 경우, HDFS가 나쁜 건강 상태의 징후를 보이는지 확인할 수 있습니다. 아마도 namenode와 관련된 메모리 문제를 보여줘야합니다. 사용 가능한 옵션을 따라 더 많은 메모리를 할당하십시오. 나는 cloudera manager를 사용하지 않는다면 어떤 명령어를 사용해야할지 모르지만 방법이 있어야합니다. 희망이 도움이됩니다! :)

  7. ==============================

    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. ==============================

    8.HDFS OS 사용자를 사용하여 아래 명령을 실행하여 안전 모드를 비활성화하십시오.

    HDFS OS 사용자를 사용하여 아래 명령을 실행하여 안전 모드를 비활성화하십시오.

    sudo -u hdfs hadoop dfsadmin -safemode leave
    
  9. ==============================

    9.아래 명령을 사용하여 안전 모드를 끕니다.

    아래 명령을 사용하여 안전 모드를 끕니다.

    $> hdfs dfsadmin -safemode leave

  10. from https://stackoverflow.com/questions/15803266/name-node-is-in-safe-mode-not-able-to-leave by cc-by-sa and MIT license