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
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
@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. –