2014-04-07 11 views
5

Ho provato a scrivere un file nella configurazione HDFS locale utilizzando un programma java Sto utilizzando la distribuzione Hadoop 2.3.0 e le librerie hadoop-client 2.3.0hadoop-hdfs 2.3.0.Impossibile scrivere sul datanode HDFS locale

Negli HDFS registro mostra il seguente errore:

2014-04-07 18:40:44,479 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: prabhathp:50010:DataXceiver error processing unknown operation src: /127.0.0.1:38572 dest: /127.0.0.1:50010 
java.io.IOException: Version Mismatch (Expected: 28, Received: 26738) 
at org.apache.hadoop.hdfs.protocol.datatransfer.Receiver.readOp(Receiver.java:54) 
at org.apache.hadoop.hdfs.server.datanode.DataXceiver.run(DataXceiver.java:198) 
at java.lang.Thread.run(Thread.java:744) 

Qualcuno può spiegare questo?

+2

Ho trovato la causa per questo. Ho usato un url hdfs errato nell'applicazione. –

+0

si prega di descrivere in modo appropriato .. non è possibile ottenere –

risposta

0

java.io.IOException: Versione non corrispondente (prevista: 28, Ricevuto: 26738)

errore di mancata corrispondenza Verison indica che si sta usng vaso Hadoop sbagliato. Assicurarsi che data.dir o name.dir abbia il file VERSION corretto e si stia utilizzando la versione hadoop corretta.

Eseguire hadoop verison per confermare.

1

Il problema (per me) era una configurazione errata delle proprietà dfs.namenode.name.dir e dfs.datanode.data.dir nel file hdfs-site.xml; devono essere URI e non solo percorsi.

<property> 
    <name>dfs.namenode.name.dir</name> 
    <value>/dfs/nn</value> # wrong, change to 'file:///dfs/nn' 
</property> 
<property> 
    <name>dfs.datanode.data.dir</name> 
    <value>/dfs/dn</value> # wrong, change to 'file:///dfs/dn' 
</property> 
1

Se l'errore Version Mismatch (Expected: 28, Received: 26738) è visto intermittente con un altissimo Received -Version, la causa può essere che un'applicazione che non utilizza il protocoll hadoop RPC è collegato alla porta datenode.

Vediamo questo errore, ad esempio, quando qualcuno accede all'URL del datanode con un browser web (pur avendo intenzione di accedere all'interfaccia web).

Un'errata configurazione può avere effetti simili.

+0

Stavo usando la porta '50010' (la porta' dfsclient') invece di '50020' (la porta' ipc'). questa risposta mi ha suggerito che stavo usando la porta per il servizio sbagliato. riferimento rapido per le porte: http://blog.cloudera.com/blog/2009/08/hadoop-default-ports-quick-reference/ – ribamar

Problemi correlati