Java 级联示例未能编译?

Java 级联示例未能编译?,java,hadoop,gradle,cascading,scalding,Java,Hadoop,Gradle,Cascading,Scalding,在shell中,我在uncerte/part1目录中键入了gradlecleanJar。输出如下。错误是“找不到org.apache.hadoop.mapred.JobConf的类文件”。为什么它不能编译 :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

在shell中,我在uncerte/part1目录中键入了gradle
cleanJar
。输出如下。错误是“找不到org.apache.hadoop.mapred.JobConf的类文件”。为什么它不能编译

: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

尝试使用Java 6,gradle在Java 7中存在一些已知问题。似乎找不到类,请检查构建路径条目中的库

将hadoop-core-1.x.y.jar从hadoop发行版添加到path

这在CoPA的例子中对我有效。我添加了eclipse构建路径

将此添加到gradle dependencies{}部分


编译(组:'org.apache.hadoop',名称:'hadoop core',版本:'1.2.0')

我今天在尝试教程时遇到了同样的问题。我已经解决了将以下内容添加到
dependencies
部分的
build.gradle
中的问题:

compile 'org.apache.hadoop:hadoop-client:2.3.0'
我想使用Hadoop 2.3.0,但我想您可以选择自己的Hadoop版本

PS:为了使用第一个
hadoop mapred
包,您必须添加以下内容:

compile 'org.apache.hadoop:hadoop-mapred:0.22.0'
您可以找到Hadoop可能需要的所有回购协议。

谢谢Lalit, 添加下面这行代码对我来说很有用,不需要更改任何java版本

compile(组:'org.apache.hadoop',名称:'hadoop core',版本:'1.2.0')

或者,我甚至可以在类路径中添加hadoop core jar,并提到在gradle路径中,我认为这不应该关闭:这里的问题是gradle不能很好地使用java 7,任何使用7.x JDK学习级联教程的人都会遇到这个问题。我很乐意补充的答案是,在级联教程中使用Java 6 JDK。另请参阅,我相信这是因为您没有安装hadoop,而wordcount/build.gradle有“{transitive=false}”,因此它没有安装它。删除它,它就会生成。我想这个类在jar中丢失了。请检查存储库中的jar。我认为类路径中不存在hadoop conf jar。请告诉我您运行此程序的hadoop版本。