何らかの理由で、このプログラムを実行するたびに (Eclipse と EMR の両方で)、メッセージ 13/07/18 13:22:23 WARN mapred.JobClient: No job jar file set が表示されます。ユーザー クラスが見つからない可能性があります。JobConf(Class) または JobConf#setJar(String) を参照してください。いくつかの print ステートメントの後で、jarfile が頑固に null のままであることがわかりました。私は何を間違っていますか?
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);
}