Il nodo del nome è in modalità provvisoria. Non è in grado di andarsene

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. 

non è in grado di creare nulla in hdf

L’ho fatto

 root# bin/hadoop fs -safemode leave 

Ma mostrando

 safemode: Unknown command 

qual è il problema?

Soluzione

Per fare in modo che il namenode lasci il safemode, è necessario eseguire il seguente comando:

  bin/hadoop dfsadmin -safemode leave 

Stai ricevendo errore Unknown command per il tuo comando dato che -safemode non è un sottocomando per hadoop fs , ma è di hadoop dfsadmin .

Inoltre, dopo il comando precedente, ti suggerirei di eseguire una volta hadoop fsck modo che eventuali incoerenze introdotte negli hdf possano essere risolte.

Aggiornare:

Usa il comando hdfs invece del comando hadoop per le nuove distribuzioni. Il comando hadoop è stato deprecato:

 hdfs dfsadmin -safemode leave 

hadoop dfsadmin è stato deprecato e quindi è il comando hadoop fs , tutte le attività relative a hdf sono state spostate su un comando separato hdfs .

prova questo, funzionerà

 sudo -u hdfs hdfs dfsadmin -safemode leave 

Il comando non ha funzionato per me, ma il seguente ha fatto

 hdfs dfsadmin -safemode leave 

Ho usato il comando hdfs invece del comando hadoop .

Dai un’occhiata a http://ask.gopivotal.com/hc/en-us/articles/200933026-HDFS-goes-into-readonly-mode-and-errors-out-with-Name-node-is-in-safe- modalità- link anche

Se si utilizza la versione 2.6.1 di Hadoop precedente, mentre il comando funziona, si lamenta che è ammortizzato. In realtà non potevo usare il hadoop dfsadmin -safemode leave perché stavo eseguendo Hadoop in un contenitore Docker e quel comando fallisce magicamente quando viene eseguito nel contenitore, quindi quello che ho fatto è stato questo. Ho controllato il documento e ho trovato dfs.safemode.threshold.pct nella documentazione che dice

Specifica la percentuale di blocchi che dovrebbe soddisfare il requisito di replica minimo definito da dfs.replication.min. Valori inferiori o uguali a 0 significano non attendere una percentuale particolare di blocchi prima di uscire da safemode. Valori maggiori di 1 renderanno permanente la modalità sicura.

quindi ho cambiato hdfs-site.xml nel seguente modo (nelle vecchie versioni di Hadoop, apparentemente hai bisogno di farlo in hdfs-default.xml :

   dfs.safemode.threshold.pct 0   

Il Namenode entra in safemode quando c’è carenza di memoria. Di conseguenza, l’HDFS diventa leggibile solo. Ciò significa che non è ansible creare directory o file aggiuntivi in ​​HDFS. Per uscire dalla safemode, viene usato il seguente comando:

 hadoop dfsadmin -safemode leave 

Se si utilizza il gestore cloudera:

 go to >>Actions>>Leave Safemode 

Ma non risolve sempre il problema. La soluzione completa sta nel creare un po ‘di spazio nella memoria. Utilizzare il seguente comando per verificare l’utilizzo della memoria.

 free -m 

Se stai usando cloudera, puoi anche controllare se l’HDFS mostra segni di ctriggers salute. Probabilmente deve mostrare qualche problema di memoria relativo al namenode. Assegna più memoria seguendo le opzioni disponibili. Non sono sicuro quali comandi utilizzare per lo stesso se non si utilizza il gestore cloudera, ma deve esserci un modo. Spero che sia d’aiuto! 🙂

Prova questo

 sudo -u hdfs hdfs dfsadmin -safemode leave 

controllare lo stato di safemode

 sudo -u hdfs hdfs dfsadmin -safemode get 

Se è ancora in safemode, uno dei motivi potrebbe non essere abbastanza spazio nel tuo nodo, puoi controllare l’utilizzo del disco del tuo nodo usando:

 df -h 

se la partizione di root è piena, eliminare i file o aggiungere spazio nella partizione di root e riprovare il primo passaggio.

Eseguire il comando seguente utilizzando l’utente del sistema operativo HDFS per disabilitare la modalità provvisoria:

 sudo -u hdfs hadoop dfsadmin -safemode leave 

usa sotto il comando per distriggersre la modalità sicura

$> hdfs dfsadmin -safemode lascia