2012-09-20 18 views
42

Nella shell ho digitato il gradle cleanJar nella directory Impatient/part1. L'output è sotto. L'errore è "file di classe per org.apache.hadoop.mapred.JobConf non trovato". Perché non è riuscito a compilare?Gli esempi a cascata non sono stati compilati?

:clean UP-TO-DATE 
:compileJava 
Download http://conjars.org/repo/cascading/cascading-core/2.0.1/cascading-core-2.0.1.pom 
Download http://conjars.org/repo/cascading/cascading-hadoop/2.0.1/cascading-hadoop-2.0.1.pom 
Download http://conjars.org/repo/riffle/riffle/0.1-dev/riffle-0.1-dev.pom 
Download http://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.pom 
Download http://repo1.maven.org/maven2/org/slf4j/slf4j-parent/1.6.1/slf4j-parent-1.6.1.pom 
Download http://repo1.maven.org/maven2/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.pom 
Download http://conjars.org/repo/thirdparty/jgrapht-jdk1.6/0.8.1/jgrapht-jdk1.6-0.8.1.pom 
Download http://repo1.maven.org/maven2/org/codehaus/janino/janino/2.5.16/janino-2.5.16.pom 
Download http://conjars.org/repo/cascading/cascading-core/2.0.1/cascading-core-2.0.1.jar 
Download http://conjars.org/repo/cascading/cascading-hadoop/2.0.1/cascading-hadoop-2.0.1.jar 
Download http://conjars.org/repo/riffle/riffle/0.1-dev/riffle-0.1-dev.jar 
Download http://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar 
Download http://repo1.maven.org/maven2/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar 
Download http://conjars.org/repo/thirdparty/jgrapht-jdk1.6/0.8.1/jgrapht-jdk1.6-0.8.1.jar 
Download http://repo1.maven.org/maven2/org/codehaus/janino/janino/2.5.16/janino-2.5.16.jar 
/home/is_admin/lab/cascading/Impatient/part1/src/main/java/impatient/Main.java:50: error: cannot access JobConf 
    Tap inTap = new Hfs(new TextDelimited(true, "\t"), inPath); 
       ^
    class file for org.apache.hadoop.mapred.JobConf not found 
1 error 
:compileJava FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':compileJava'. 
> Compilation failed; see the compiler error output for details. 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 22.599 secs 
+12

io non credo che questo dovrebbe essere chiuso: il problema qui è che gradle non funziona bene con java 7, e chiunque passi attraverso il tutorial a cascata con 7.x JDK avrà questo problema. La risposta, che sono felice di aggiungere, è quella di utilizzare un JDK Java 6 con il tutorial a cascata. –

+0

Vedi anche https://groups.google.com/d/topic/cascading-user/XEZapg4uqdI/discussion – hertzsprung

+0

Credo che questo sia dovuto al fatto che non hai installato hadoop, e wordcount/build.gradle ha "{transitive = false } "quindi non lo installa. Rimuovilo e lo costruirà. –

risposta

1

provare a utilizzare Java 6, Gradle ha alcuni problemi noti con Java 7

0

Sembra classe non trovato, si prega di controllare le biblioteche delle voci del percorso di generazione.

1

Aggiungere hadoop-core-1.x.y.jar dalla distribuzione hadoop al percorso.

Questo ha funzionato per me nell'esempio CoPA. Ho aggiunto al percorso di costruzione di Eclipse.

Aggiungi questo per Gradle dipendenze {} sezione

compilazione (gruppo: 'org.apache.hadoop', nome: 'Hadoop-core', versione: '1.2.0')

0

ho avuto lo stesso problema oggi cercando il tutorial Cascading for the Impatient. Ho risolto aggiungendo quanto segue alla mia build.gradle nella sezione dependencies:

compile 'org.apache.hadoop:hadoop-client:2.3.0' 

ho voluto usare Hadoop 2.3.0, ma credo che si può scegliere la propria versione di Hadoop.

PS: Per poter utilizzare il primo pacchetto hadoop-mapred, si deve aggiungere il seguente invece:

compile 'org.apache.hadoop:hadoop-mapred:0.22.0' 

si possono trovare tutti i pronti contro termine si potrebbe aver bisogno per Hadoop here.

0

Grazie Lalit, Aggiunta la riga sotto ha fatto il trucco per me senza dover modificare qualsiasi versione di Java ..

compilazione (gruppo: 'org.apache.hadoop', il nome: 'Hadoop-core', versione: '1.2.0')

in alternativa, posso anche aggiungere il barattolo Hadoop-core nel percorso di classe e ricordare che nel percorso Gradle