Java 多线程apper拒绝找到Jar
出于某种原因,每次我运行这个程序(在eclipse和EMR上)时,我都会收到消息13/07/18 13:22:23 WARN mapred.JobClient:No job jar file set。可能找不到用户类。请参阅JobConf(类)或JobConf#setJar(字符串)。几个print语句之后,我发现我的jarfile顽固地保持为空。我做错了什么Java 多线程apper拒绝找到Jar,java,multithreading,hadoop,emr,Java,Multithreading,Hadoop,Emr,出于某种原因,每次我运行这个程序(在eclipse和EMR上)时,我都会收到消息13/07/18 13:22:23 WARN mapred.JobClient:No job jar file set。可能找不到用户类。请参阅JobConf(类)或JobConf#setJar(字符串)。几个print语句之后,我发现我的jarfile顽固地保持为空。我做错了什么 public static void main(String[] args) throws Exception {
public static void main(String[] args) throws Exception {
Job job = new Job();
job.setJarByClass(Driver.Map.class);
FileInputFormat.addInputPath(job, new Path(args[0]));
FileOutputFormat.setOutputPath(job, new Path(args[1]));
MultithreadedMapper.setMapperClass(job, Driver.Map.class);
MultithreadedMapper.setNumberOfThreads(job, 64);
job.setMapperClass(MultithreadedMapper.class);
System.out.println(job.getJar());
System.out.println(MultithreadedMapper.getNumberOfThreads(job) + " "
+ MultithreadedMapper.getMapperClass(job));
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(Text.class);
job.setNumReduceTasks(0);
Config.LoggerProvider = LoggerProvider.DISABLED;
job.waitForCompletion(true);
}
我设置它来查找驱动程序,并告诉它包名,在eclipse上没有帮助,但在emr中它能够找到jar。不幸的是,它似乎没有做任何事。使用一些打印语句,我发现一切都是它应该做的,但我的映射器仍然没有被调用。