2012-09-20 18 views
42

En shell escribí gradle cleanJar en el directorio Impatient/part1. El resultado está abajo. El error es "archivo de clase para org.apache.hadoop.mapred.JobConf no encontrado". ¿Por qué no compiló?¿No se compilaron los ejemplos en cascada?

: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

no creo que esto debería estar cerrada: el problema aquí es que gradle no funciona bien con java 7, y cualquiera que esté pasando por el tutorial en cascada con 7.x JDK tendrá este problema. La respuesta, que me complace agregar, es utilizar Java 6 JDK con el tutorial en cascada. –

+0

Véase también https://groups.google.com/d/topic/cascading-user/XEZapg4uqdI/discussion – hertzsprung

+0

Creo que esto se debe a que no tiene instalado hadoop, y wordcount/build.gradle tiene "{transitive = false } "entonces no lo instala. Quítelo y se construirá. –

Respuesta

1

tratar de usar Java 6, Gradle tiene algunos problemas conocidos de Java 7

0

Parece que la clase no lo encuentra, por favor revise las bibliotecas en las entradas de ruta de construcción.

1

Agregue hadoop-core-1.x.y.jar de la distribución de hadoop a la ruta.

Esto funcionó para mí en el ejemplo de CoPA. Agregué a eclipse ruta de compilación.

Añadir esto a Gradle dependencias {} sección

de compilación (grupo: 'org.apache.hadoop', nombre: 'hadoop-core', versión: '1.2.0')

0

que tenía el mismo problema hoy que intenta el tutorial Cascading for the Impatient. He resuelto añadiendo lo siguiente a mi build.gradle en la sección dependencies:

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

que quería utilizar Hadoop 2.3.0, pero supongo que usted puede elegir su propia versión de Hadoop.

PS: Con el fin de utilizar la primera hadoop-mapred paquete, hay que añadir lo siguiente en su lugar:

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

Usted puede encontrar todos los repositorios que pueda necesitar para Hadoop here.

0

Gracias Lalit, Adición de la línea de abajo hizo el truco para mí sin tener que cambiar ninguna versión de Java ..

de compilación (grupo: 'org.apache.hadoop', nombre: 'hadoop-core', versión: '1.2.0')

Alternativamente, puedo incluso agregar el frasco hadoop núcleos en la ruta de clase y mencionar que en el camino Gradle

Cuestiones relacionadas