2012-10-25 18 views
5

ho installato e configurato l'ambiente Hadoop nodo sudo su Ubuntu 12.04 LTS utilizzando seguente tutorial http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#formatting-the-hdfs-filesystem-via-the-namenodeDataNode non riuscendo a Hadoop sulla singola macchina

Dopo aver digitato Hadoop/bin $ start-all.sh tutto quello che succede bene poi ho controllato il Jps poi NameNode, JobTracker, TaskTracker, SecondaryNode sono stati avviati, ma non avviato DataNode ...

Se qualcuno sa come risolvere questo problema per favore fatemi sapere ..

risposta

3

ya ho risolto è ...

java.io.IOException: namespaceIDs incompatibili

Se si vede il java.io.IOException errore: namespaceIDs incompatibili nei log di un DataNode (logs/Hadoop-hduser-DataNode-log), è probabile che sei interessato dal problema HDFS-107 (precedentemente noto come HADOOP-1212).

L'errore completo si presentava così sul mio computer: ... Errore org.apache.hadoop.dfs.DataNode: java.io.IOException: namespaceIDs incompatibili in/app/Hadoop/tmp/dfs/dati: NameNode namespaceID = 308967713; datanode namespaceID = 113030094 in org.apache.hadoop.dfs.DataStorage.doTransition (DataStorage.java:281) in org.apache.hadoop.dfs.DataStorage.recoverTransitionRead (DataStorage.java:121) in org.apache. hadoop.dfs.DataNode.startDataNode (DataNode.java:230) in org.apache.hadoop.dfs.DataNode. (DataNode.java:199) in org.apache.hadoop.dfs.DataNode.makeInstance (DataNode.java : 1202) in org.apache.hadoop.dfs.DataNode.run (DataNode.java:1146) in org.apache.hadoop.dfs.DataNode.createDataNode (DataNode.java:1167) in org.apache.hadoop .dfs.DataNode.main (DataNode.java:1326) In questo momento, sembrano esserci due soluzioni alternative come descritto di seguito.

Soluzione 1: Iniziare da zero posso testimoniare che le seguenti operazioni a risolvere questo errore, ma gli effetti collaterali non vi renderà felici (nemmeno io). La soluzione alternativa che ho trovato è:

Arresta il cluster Elimina la directory di dati sul DataNode problematico: la directory è specificata da dfs.data.dir in conf/hdfs-site.xml; se hai seguito questo tutorial, la directory pertinente è/app/hadoop/tmp/dfs/data Riformatta il NameNode (NOTA: tutti i dati HDFS vengono persi durante questo processo!) Riavvia il cluster Quando si eliminano tutti i dati HDFS e si avvia da zero non sembra una buona idea (potrebbe essere ok durante la configurazione iniziale/test), potresti provare il secondo approccio.

Soluzione alternativa 2: Aggiornamento dello spazio dei nomi dei DataNode problematici Grande grazie a Jared Stehler per il seguente suggerimento. Non l'ho ancora provato, ma sentitevi liberi di provarlo e di inviarmi il vostro feedback.Questa soluzione è “minimamente invasivo”, come è sufficiente modificare un file sui DataNodes problematici:

Arrestare il DataNode Modificare il valore di ID dominio in/corrente/VERSION per abbinare il valore della NameNode corrente Riavviare il DataNode Se hai seguito le istruzioni riportate nel mio tutorial, il percorso completo del file in questione sono:

NameNode:/app/Hadoop/tmp/DFS/nome/corrente/VERSIONE DataNode: DFS/app/Hadoop/tmp// data/current/VERSION (background: dfs.data.dir è impostato di default su $ {hadoop.tmp.dir}/dfs/data, e abbiamo impostato hadoop.tmp.dir in questo tutorial su/app/hadoop/tmp).

La soluzione per il problema venga indicato chiaramente nel seguente sito:

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#java-io-ioexception-incompatible-namespaceids

+0

Hai scoperto quale sia la ragione era? Ho ricevuto questo errore personalmente durante la modifica dei parametri dfs. * In hdfs-site.xml. C'è una regola generale che si applica? Questo errore può essere prevenuto? – rretzbach

+0

@rretzbach non è un problema, se installi HDFS devi prima formattarlo. Proprio come un disco rigido. Non installare su una partizione tmp perché verrà cancellato ad ogni riavvio, quindi devi riformattare il tuo namenode ogni volta. –

Problemi correlati