2012-09-20 16 views
42

W powłoce wpisałem gradle cleanJar w katalogu Impatient/part1. Wynik jest poniżej. Błąd to "plik klasy dla org.apache.hadoop.mapred.JobConf nie znaleziono". Dlaczego nie udało się skompilować?Kaskadowe przykłady nie zostały skompilowane?

: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

i nie sądzę, że to powinno być zamknięte: problem tutaj jest to, że gradle nie gra ładnie z java 7, i każdy przechodzący kaskadowy samouczek z 7.x JDK będzie miał ten problem. Odpowiedź, którą chętnie dodam, polega na użyciu JDK Java 6 z samouczkiem kaskadowym. –

+0

Zobacz także https://groups.google.com/d/topic/cascading-user/XEZapg4uqdI/discussion – hertzsprung

+0

Uważam, że dzieje się tak dlatego, że nie masz zainstalowanego hadoop, a wordcount/build.gradle ma wartość "{transitive = false } ", więc go nie instaluje. Usuń to i będzie budować. –

Odpowiedz

1

Spróbuj użyć Java 6, Gradle ma jakieś znane problemy z Java 7

0

Wydaje się, że klasa nie znaleziono, proszę sprawdzić bibliotek we wpisach Build Path.

1

Dodaj hadoop-core-1.x.y.jar z dystrybucji mufki do ścieżki.

To działało dla mnie w przykładzie z CoPA. Dodałem do ścieżki budowania Eclipse.

Dodaj to Gradle zależności {} sekcja

kompilacji (grupa: 'org.apache.hadoop' Nazwa: 'hadoop rdzeniem', wersja: '1.2.0')

0

miałem ten sam problem dziś próbuje samouczek Cascading for the Impatient. Mam rozwiązać dodanie następujących do mojego build.gradle w sekcji dependencies:

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

chciałem użyć Hadoop 2.3.0, ale myślę, że można wybrać własną wersję Hadoop.

PS: W celu wykorzystania pierwszego hadoop-mapred pakietu, należy dodać następujące zamiast:

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

można znaleźć wszystkie repo mogą być potrzebne dla Hadoop here.

0

Dzięki Lalit, Dodanie poniżej linii wystarczyły dla mnie bez musiał zmienić dowolną wersję java ..

kompilacji (grupa: 'org.apache.hadoop', nazwa: 'Hadoop-core' wersja: „1.2.0”)

Ewentualnie mogę jeszcze dodać słoik Hadoop-core w ścieżce klasy i wspomnieć, że w Gradle ścieżce