web-dev-qa-db-fra.com

Le noeud de nom est en mode sans échec. Pas capable de partir

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.

pas capable de créer quoi que ce soit en HDFS

J'ai fait

root# bin/hadoop fs -safemode leave

Mais montrant

safemode: Unknown command

quel est le problème?

Solution

113
Unmesha SreeVeni

Afin de forcer le namenode à quitter le safemode, la commande suivante doit être exécutée:

 bin/hadoop dfsadmin -safemode leave

Vous obtenez l'erreur Unknown command pour votre commande car -safemode n'est pas une sous-commande pour hadoop fs, mais il s'agit de hadoop dfsadmin.

De plus, après la commande ci-dessus, je vous suggèrerais de lancer une fois hadoop fsck afin que toutes les incohérences apparues dans les fichiers hdfs puissent être résolues.

Mise à jour:

Utilisez la commande hdfs au lieu de la commande hadoop pour les nouvelles distributions. La commande hadoop est obsolète:

hdfs dfsadmin -safemode leave

hadoop dfsadmin est obsolète, de même que hadoop fs commande, toutes les tâches liées à hdfs sont déplacées vers une commande séparée hdfs.

199
Amar

essayez ceci, ça va marcher

Sudo -u hdfs hdfs dfsadmin -safemode leave
27
Wesam Na

Le commandement n’a pas fonctionné pour moi, mais les suivants ont

hdfs dfsadmin -safemode leave

J'ai utilisé la commande hdfs à la place de la commande hadoop.

Départ http://ask.gopivotal.com/hc/en-us/articles/200933026-HDFS-goes-into-readonly-mode-and-errors-out-with-Name-node-is- in-safe-mode - lien aussi

21
Kishan B

Si vous utilisez Hadoop version 2.6.1 ci-dessus, alors que la commande fonctionne, elle se plaint de sa dépréciation. En fait, je ne pouvais pas utiliser hadoop dfsadmin -safemode leave parce que j'exécutais Hadoop dans un conteneur Docker et que la commande échouait comme par magie lorsqu'elle était exécutée dans le conteneur. J'ai vérifié doc et trouvé dfs.safemode.threshold.pct dans la documentation qui dit

Indique le pourcentage de blocs devant satisfaire à l'exigence de réplication minimale définie par dfs.replication.min. Les valeurs inférieures ou égales à 0 signifient qu'il ne faut pas attendre un pourcentage particulier de blocs avant de quitter le safemode. Les valeurs supérieures à 1 rendront le mode sans échec permanent.

j'ai donc changé le hdfs-site.xml comme suit (Dans les anciennes versions de Hadoop, vous devez apparemment le faire dans hdfs-default.xml:

<configuration>
    <property>
        <name>dfs.safemode.threshold.pct</name>
        <value>0</value>
    </property>
</configuration>
6
ambodi

Essayez ceci

Sudo -u hdfs hdfs dfsadmin -safemode leave

vérifier le statut du safemode

Sudo -u hdfs hdfs dfsadmin -safemode get

S'il est toujours en mode sécurisé, alors une des raisons serait un espace insuffisant dans votre nœud. Vous pouvez vérifier l'utilisation de votre disque de nœud à l'aide de:

df -h

si la partition racine est pleine, supprimez des fichiers ou ajoutez de l’espace dans votre partition racine, puis réessayez.

5
Tarun Reddy

Namenode entre en mode safem quand il y a un manque de mémoire. En conséquence, le HDFS devient uniquement lisible. Cela signifie que vous ne pouvez créer aucun répertoire ou fichier supplémentaire dans le HDFS. Pour sortir du mode sécurisé, la commande suivante est utilisée:

hadoop dfsadmin -safemode leave

Si vous utilisez Cloudera Manager:

go to >>Actions>>Leave Safemode

Mais cela ne résout pas toujours le problème. La solution complète consiste à faire de la place dans la mémoire. Utilisez la commande suivante pour vérifier votre utilisation de la mémoire.

free -m

Si vous utilisez la cloudera, vous pouvez également vérifier si le HDFS montre des signes de mauvaise santé. Il doit probablement montrer un problème de mémoire lié au namenode. Allouez plus de mémoire en suivant les options disponibles. Je ne sais pas quelles commandes utiliser pour la même chose si vous n'utilisez pas Cloudera Manager, mais il doit y avoir un moyen. J'espère que ça aide! :)

4
Amitesh Ranjan

mode sécurisé allumé (HDFS est en mode READ uniquement)
mode sécurisé désactivé (HDFS est en mode Lecture et lecture)

Dans Hadoop 2.6.0, nous pouvons vérifier l'état du noeud de nom à l'aide des commandes ci-dessous:

POUR VÉRIFIER LE STATUT DU NOM DE NOM

$ hdfs dfsadmin -safemode get

POUR ENTRER EN MODE SÉCURITAIRE:

$ hdfs dfsadmin -safemode enter

Pour quitter le mode sûr

~$ hdfs dfsadmin -safemode leave
3
Vishwajeet Singh

Exécutez la commande ci-dessous à l'aide de l'utilisateur du système d'exploitation HDFS pour désactiver le mode sans échec:

Sudo -u hdfs hadoop dfsadmin -safemode leave
1
Mayank Gupta

utiliser la commande ci-dessous pour désactiver le mode sans échec

$> hdfs dfsadmin -safemode quitte

0
Azam Khan