Я написал программу на Java, которая использует Hadoop. Я запускаю свою программу из командной строки, используя «java -jar prog.jar», и вижу, что она работает в автономном режиме. Я могу это сказать, потому что демоны JobTracker и TaskTracker не обязательно должны быть запущены для успешного выполнения моей программы. Если я выполняю свою программу, используя «hadoop jar prog.jar» (с отключенными демонами map/reduce), естественно, она не работает.
Я хочу, чтобы моя java-программа выполнялась в псевдораспределенном режиме, но у меня такое ощущение, что она не может найти файлы конфигурации. Я попытался выполнить его как «java -cp /usr/hadoop-1.1.1/conf -jar prog.jar», чтобы указать, где находятся файлы конфигурации, но все еще без кубиков.
У меня такое чувство, что путь к классам неверен или что-то в этом роде. Я нуб, поэтому любая помощь приветствуется. Спасибо,
mj
Вот фрагмент моего кода запуска задания с объектом конфигурации.
Configuration config = new Configuration();
Job job = new Job(config);
job.setJobName("Test");
job.setJarByClass(MyMapper.class);
job.setMapperClass(MyMapper.class);
job.setReducerClass(MyReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
job.setMapOutputKeyClass(LongWritable.class);
job.setMapOutputValueClass(Text.class);
job.setInputFormatClass(MyInputFormat.class);
FileInputFormat.addInputPath(job, new Path("hdfs://hadoop0.hq.net:54310/" + saFileName));
FileOutputFormat.setOutputPath(job, new Path("hdfs://hadoop0.hq.net:54310/" + saFileName + "-output"));
job.waitForCompletion(true);