“线程”;“主要”;java.lang.ClassNotFoundException
正在尝试运行作业,但我不断遇到此错误。我不知道如何解决它。我有什么遗漏吗?这里怎么了 这在我的壳里“线程”;“主要”;java.lang.ClassNotFoundException,exception,hadoop,mapreduce,Exception,Hadoop,Mapreduce,正在尝试运行作业,但我不断遇到此错误。我不知道如何解决它。我有什么遗漏吗?这里怎么了 这在我的壳里 [cloudera@localhost home]$ hadoop jar cloudera/MinMaxCountDriver.jar MinMaxCount /user/cloudera/Comments.xml /user/cloudera/SuperUserXML/ 这就是我得到的错误 线程“main”java.lang.ClassNotFoundException中的异常:MinMax
[cloudera@localhost home]$ hadoop jar cloudera/MinMaxCountDriver.jar MinMaxCount /user/cloudera/Comments.xml /user/cloudera/SuperUserXML/
这就是我得到的错误
线程“main”java.lang.ClassNotFoundException中的异常:MinMaxCount
....
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(Class.java:247)
位于org.apache.hadoop.util.RunJar.main(RunJar.java:201)
这是我的司机
public class MinMaxCountDriver {
public static void main(String []args) throws Exception
{
Configuration conf = new Configuration();
String [] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
if(otherArgs.length !=2 )
{
System.err.println("You need 2 Arguement");
System.exit(2);
}
...
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
System.exit(job.waitForCompletion(true)? 0: 1);
}
}
.jar中的每个类的顶部都有[package MapRedDesign;]
根据您的评论,确保使用包完全限定类名,否则Java将不知道在哪里可以找到它
hadoop jar cloudera/MinMaxCountDriver.jar MapRedDesign.MinMaxCount /user/cloudera/Comments.xml /user/cloudera/SuperUserXML/
运行MR jobs的基本命令是
hadoop jar myjar.jar classname inputfolder outputfolder
对我来说,它也可以在没有类名的情况下工作
myproject
|
|
-----> mypackage
|
|
---->Driver.java
|
|
---->Mapper.java
|
|
---->Reducer.java
如果这是树,我不需要指定类名
hadoop jar driver.jar in out
但是
为此,我需要指定我试图执行的驱动程序类的类名
hadoop jar driver2.jar mypackage2.Driver2 in out
你的类在一个包中吗?我有一个驱动程序类,一个映射器和一个减缩器都打包在MinMaxCountDriver.jarYes中,但是你的类在一个包中吗?比如com.example.plugin…是的。驱动程序、映射程序和Reducer都在同一个包中,还有一个可写类。所有4个都打包到.jar文件中。。。不是我要的。
.java
的开头应该有一个包说明符,如package com.example….
,您需要用该包限定类名。。比如com.whatever.MinMaxClass
hadoop jar driver2.jar mypackage2.Driver2 in out