2012-12-05 9 views
12

Ho provato a copiare i file dal mio disco locale a hdfs. All'inizio ha dato SafeModeException. Durante la ricerca della soluzione, ho letto che il problema non si verifica se si esegue di nuovo lo stesso comando. Così ho provato di nuovo e non ha dato eccezioni.SafeModeException: il nodo Nome è in modalità provvisoria

[email protected]:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg/ /user/hduser/gutenberg 
copyFromLocal: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hduser/gutenberg. Name node is in safe mode. 
[email protected]:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg/ /user/hduser/gutenberg 

Perché sta succedendo ?. Dovrei tenere fuori la safemode usando questo codice?

hadoop dfs -safemode leave 
+0

Qual è stata la differenza di tempo tra l'esecuzione dei comandi? Ci vogliono alcuni istanti prima che tutti i nodi dati arrivino online quando si avvia per la prima volta i servizi HDFS. –

+2

FYI, il comando per lasciare safemode nella mia versione di hadoop è: 'hadoop dfsadmin -safemode leave'. –

+0

@saket hai trovato la soluzione al tuo problema ?? –

risposta

17

NameNode è in safemode fino per cento dei blocchi segnalati per essere in linea con i nodi di dati configurato. Può essere configurato con il parametro dfs.namenode.safemode.threshold-pct nel hdfs-site.xml

Per i cluster piccolo/di sviluppo, dove si hanno molto pochi isolati - ha senso per rendere questo parametro inferiore allora il suo valore di default 0.9999f. Altrimenti 1 blocco mancante può portare al blocco del sistema in safemode.

+1

Mentre cluster in modalità provvisoria è possibile leggere da HDFS, ma non è possibile scrivere su HDFS. –

+0

Sì. È la modalità di sola lettura. –

12

Vai al percorso hadoop in bin (nel mio sistema /usr/local/hadoop/bin/),

cd /usr/local/hadoop/bin/ 

controllare c'è un file hadoop,

[email protected]:/usr/local/hadoop/bin$ ls 

l'O/P sarà,

hadoop   hadoop-daemons.sh start-all.sh  start-jobhistoryserver.sh stop-balancer.sh   stop-mapred.sh 
hadoop-config.sh rcc    start-balancer.sh start-mapred.sh   stop-dfs.sh    task-controller 
hadoop-daemon.sh slaves.sh   start-dfs.sh  stop-all.sh    stop-jobhistoryserver.sh 

Quindi devi disattivare la modalità provvisoria usando comman d ./hadoop dfsadmin -safemode leave,

[email protected]:/usr/local/hadoop/bin$ ./hadoop dfsadmin -safemode leave 

si otterrà la risposta come,

Safe mode is OFF 

Nota: ho creato utente Hadoop con il nome di hadoopuser.

+0

La risposta è fantastica, grazie mille @AJ –

Problemi correlati