2014-11-02 15 views
6

Voglio eseguire WordCount Example.Non un vaso valido durante l'esecuzione del lavoro Hadoop

In eclissi funziona correttamente. Nella cartella di output è presente il file di output.

Ho fatto un file JAR di WordCount e vogliono correre attraverso il comando

hadoop jar WordCount.jar /Projects/input /Projects/output 

mi dà errore

Not a valid JAR: /Projects/WordCount.jar 

risultato di hdfs dfs -ls /Projects

Found 3 items 
-rw-r--r-- 1 hduser supergroup 3418 2014-11-02 15:38 /Projects/WordCount.jar 
drwxr-xr-x - hduser supergroup 0 2014-11-02 14:13 /Projects/input 
drwxr-xr-x - hduser supergroup 0 2014-11-02 14:16 /Projects/output 

mi dà lo stesso errore anche su questo

hadoop jar /Projects/WordCount.jar wordPackage.WordCount /Projects/input /Projects/output 

Not a valid JAR: /Projects/WordCount.jar 

come risolvere questo errore.

comando tvf ho eseguito dà questa uscita

jar -tvf /home/hduser/Desktop/Files/WordCount.jar 

    60 Sun Nov 02 16:10:10 PKT 2014 META-INF/MANIFEST.MF 
1895 Sun Nov 02 14:02:38 PKT 2014 wordPackage/WordCount.class 
1295 Sun Nov 02 14:02:38 PKT 2014 wordPackage/WordCount.java 
2388 Sun Nov 02 14:02:06 PKT 2014 wordPackage/WordReducer.class 
707 Sun Nov 02 14:02:06 PKT 2014 wordPackage/WordReducer.java 
2203 Sun Nov 02 14:02:08 PKT 2014 wordPackage/WordMapper.class 
713 Sun Nov 02 14:02:06 PKT 2014 wordPackage/WordMapper.java 
16424 Sun Nov 02 13:50:00 PKT 2014 .classpath 
420 Sun Nov 02 13:50:00 PKT 2014 .project 
+0

Credo che vi siete persi di fornire il file MainClass che dovrebbe essere qualcosa come $ bin/Hadoop vaso WordCount.jar org.myorg.WordCount/Projects/input/Projects/output – Satya

+0

Ho fornito la classe principale. Ho una domanda modificata che puoi vedere in essa. –

+0

La versione di Hadoop che si utilizza per compilare e compilare il jar deve essere la stessa versione dell'ambiente in cui si desidera eseguire il lavoro hadoop (provare il comando: "versione hadoop"). –

risposta

7

Non si può tenere il vaso in HDFS quando si esegue lo stesso utilizzando il comando Hadoop, vaso dovrebbe essere disponibile nel percorso locale

Se il vaso non è eseguibile provare quanto segue (è necessario specificare il package.mainclass)

hadoop jar /home/hduser/Desktop/Files/WordCount.jar wordPackage.WordCount /Projects/input /Projects/output 

Se il vaso è eseguibile seguente può essere utilizzato

hadoop jar /home/hduser/Desktop/Files/WordCount.jar /Projects/input /Projects/output 

Se il problema persiste, è necessario ricostruire questo barattolo (WordCount.jar) in Eclipse di nuovo

+1

Sì, il jar non dovrebbe essere all'interno di HDFS. –

-1

Ho affrontato lo stesso problema. Ma nel mio caso quello che ho fatto è stato che ho scritto il codice java riferendosi alle librerie hadoop 1.x e ho provato ad eseguirlo usando 2.x. Inizialmente, ho avuto lo stesso errore nel terminale. Poi ho provato a navigare nel percorso in cui avevo il mio file jar. Ha funzionato.

Può essere che si può effettivamente provare quanto segue: (dopo la navigazione verso il percorso di file jar)

Problemi correlati