2013-05-23 22 views
11

Sto tentando di eseguire hadoop come utente root, ho eseguito il comando di formato namenode hadoop namenode -format quando il file system Hadoop è in esecuzione.Hadoop - il namenode non si avvia

Dopo questo, quando provo ad avviare il server del nodo nome, mostra l'errore come qui di seguito

13/05/23 04:11:37 ERROR namenode.FSNamesystem: FSNamesystem initialization failed. 
java.io.IOException: NameNode is not formatted. 
     at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:330) 
     at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:100) 
     at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:411) 

Ho provato a cercare una soluzione, ma non riesce a trovare alcuna soluzione chiara.

Qualcuno può suggerire?

Grazie.

+2

Hai fissato i tuoi demoni HDFS. Guarda qui potrebbe aiutare http://blog.abhinavmathur.net/2013/01/experience-with-setting-multinode.html – abhinav

+0

Grazie Abhinav .. Il tuo link mi ha dato le risposte .. – balanv

+0

perché dovresti formattare HDFS mentre i demoni sono in esecuzione ?? – Tariq

risposta

15

Cool, ho trovato la soluzione.

Arrestare tutti i server in esecuzione

1) stop-all.sh 

Modificare il file /usr/local/hadoop/conf/hdfs-site.xml e aggiungere sotto la configurazione se manca

<property> 
    <name>dfs.data.dir</name> 
    <value>/app/hadoop/tmp/dfs/name/data</value> 
    <final>true</final> 
    </property> 
    <property> 
    <name>dfs.name.dir</name> 
    <value>/app/hadoop/tmp/dfs/name</value> 
    <final>true</final> 
</property> 

di inizio sia HDFS e MapReduce Demoni

2) start-dfs.sh 
3) start-mapred.sh 

Quindi ora eseguire il il resto dei passaggi per eseguire la mappa riduce il campione indicato in this link

Nota: Si dovrebbe eseguire il comando bin/start-all.sh se il comando diretto non è in esecuzione.

+2

come promemoria, il namenode era necessario per essere formattato per me. 'bin/hadoop namenode -format' – erencan

+1

Sì. possiamo usare il comando 'hadoop namenode -format -force' nel caso in cui dovessimo affrontare qualsiasi problema con solo' hadoop namenode -format' – balanv

2

formato hdf quando stop del nome del nodo. (Proprio come la risposta superiore).

Aggiungo qualche altro dettaglio.

Il comando FORMAT controllerà o creerà percorso/dfs/nome e lo inizializzerà o reinizializzerà. quindi eseguire start-dfs.sh dovrebbe eseguire namenode, datanode, quindi namesecondary. quando il controllo del nome del nodo non esiste percorso/dfs/nome o non inizializza, si verifica un errore fatale, quindi esce. ecco perché il namenode non si avvia.

maggiori dettagli è possibile controllare HADOOP_COMMON/logs/XXX.namenode.log

11

DFS deve essere formattato. Basta emettere il seguente comando dopo aver fermato tutto e quindi riavviato.

hadoop namenode -format 
+0

hdfs namenode -format usalo in hadoop2.6 – Koitoer

0

hdfs-site.xml il vostro valore è sbagliato. Hai inserito la cartella sbagliata, ecco perché non sta iniziando il nodo del nome.

0

Prima mkdir [cartella], quindi impostare HDFS-site.xml poi formato

0

assicurarsi che la directory di nome (dfs.name.dir) e dati delle cartelle (dfs.data.dir) sia elencato correttamente in hdfs-site.xml

1

Assicurati che la directory che hai specificato per il tuo namenode sia completamente vuota. Qualcosa come una cartella "lost + found" in detta directory attiverà questo errore.