Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 由于找不到ClassDefinition,HIPI测试运行失败_Java_Hadoop_Cloudera Quickstart Vm_Hipi - Fatal编程技术网

Java 由于找不到ClassDefinition,HIPI测试运行失败

Java 由于找不到ClassDefinition,HIPI测试运行失败,java,hadoop,cloudera-quickstart-vm,hipi,Java,Hadoop,Cloudera Quickstart Vm,Hipi,我一直在尝试使用ClouderaVM(cdh-5.4.2),但在尝试运行构建的jar来计算像素数时遇到了一个异常 构建本身成功: [cloudera@quickstart helloWorld]$ gradle jar :core:compileJava UP-TO-DATE :core:processResources UP-TO-DATE :core:classes UP-TO-DATE :core:jar UP-TO-DATE :examples:helloWorld:compileJav

我一直在尝试使用ClouderaVM(cdh-5.4.2),但在尝试运行构建的jar来计算像素数时遇到了一个异常

构建本身成功:

[cloudera@quickstart helloWorld]$ gradle jar
:core:compileJava UP-TO-DATE
:core:processResources UP-TO-DATE
:core:classes UP-TO-DATE
:core:jar UP-TO-DATE
:examples:helloWorld:compileJava UP-TO-DATE
:examples:helloWorld:processResources UP-TO-DATE
:examples:helloWorld:classes UP-TO-DATE
:examples:helloWorld:jar

BUILD SUCCESSFUL

Total time: 18.436 secs

This build could be faster, please consider using the Gradle Daemon: https://docs.gradle.org/2.7/userguide/gradle_daemon.html
但是执行jar会引发以下错误:

[cloudera@quickstart helloWorld]$ hadoop jar build/libs/helloWorld.jar examples/sampleNew.hib sampleimages_average
Exception in thread "main" java.lang.NoClassDefFoundError: org/hipi/imagebundle/mapreduce/HibInputFormat
    at org.hipi.examples.HelloWorld.run(HelloWorld.java:106)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
    at org.hipi.examples.HelloWorld.main(HelloWorld.java:129)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.lang.ClassNotFoundException: org.hipi.imagebundle.mapreduce.HibInputFormat
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 10 more
同一根hipi父项目的示例文件夹中此子项目的My build.gradle如下所示:

 jar {
  manifest {
    attributes("Main-Class": "org.hipi.examples.HelloWorld")

  }

  dependencies{
    compile project(':core')
  }
}
有人能帮我找到我缺少的东西以及如何让它运行吗

java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
因为我是gradle的新手,所以我无法在eclipse下配置hipi以用于其他项目,所以我尝试只运行终端。有人能帮我吗


注意:我限制了internet访问,因此在我的系统中几乎没有下载权限。

我通过gradle将所有文件包括在jar中,解决了这个问题,如下所示

jar {
  manifest {
    attributes("Main-Class": "org.hipi.examples.HelloWorld")
  }

  dependencies{
    compile project(':core')
  }

 from {
    configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}