Моя карта Уменьшить структуру
public class ChainingMapReduce {
public static class ChainingMapReduceMapper
extends Mapper<Object, Text, Text, IntWritable>{
public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
// code
}
}
}
public static class ChainingMapReduceReducer
extends Reducer<Text,IntWritable,Text,IntWritable> {
public void reduce(Text key, Iterable<IntWritable> values,
Context context
) throws IOException, InterruptedException {
//code
}
}
public static class ChainingMapReduceMapper1
extends Mapper<Object, Text, Text, IntWritable>{
public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
//code
}
}
}
public static class ChainingMapReduceReducer1
extends Reducer<Text,IntWritable,Text,IntWritable> {
public void reduce(Text key, Iterable<IntWritable> values,
Context context
) throws IOException, InterruptedException {
//code
}
}
public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException {
Configuration conf = new Configuration();
Job job = new Job(conf, "First");
job.setJarByClass(ChainingMapReduce.class);
job.setMapperClass(ChainingMapReduceMapper.class);
job.setCombinerClass(ChainingMapReduceReducer.class);
job.setReducerClass(ChainingMapReduceReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path("/home/Desktop/log"));
FileOutputFormat.setOutputPath(job, new Path("/home/Desktop/temp/output"));
job.waitForCompletion( true );
System.out.println("First Job Completed.....Starting Second Job");
System.out.println(job.isSuccessful());
/* FileSystem hdfs = FileSystem.get(conf);
Path fromPath = new Path("/home/Desktop/temp/output/part-r-00000");
Path toPath = new Path("/home/Desktop/temp/output1");
hdfs.rename(fromPath, toPath);
conf.clear();
*/
if(job.isSuccessful()){
Configuration conf1 = new Configuration();
Job job1 = new Job(conf1,"Second");
job1.setJarByClass(ChainingMapReduce.class);
job1.setMapperClass(ChainingMapReduceMapper1.class);
job1.setCombinerClass(ChainingMapReduceReducer1.class);
job1.setReducerClass(ChainingMapReduceReducer1.class);
job1.setOutputKeyClass(Text.class);
job1.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path("/home/Desktop/temp/output/part-r-00000)");
FileOutputFormat.setOutputPath(job, new Path("/home/Desktop/temp/output1"));
System.exit(job1.waitForCompletion(true) ? 0 : 1);
}
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
Пока я запускаю эту программу ... Первое задание выполняется отлично, и после этого появляется следующая ошибка:
Первое задание завершено ..... Запуск второго задания true
12/01/27 15:24:21 ИНФОРМАЦИЯ jvm.JvmMetrics: невозможно инициализировать метрики JVM с помощью processName = JobTracker, sessionId = - уже инициализировано 12/01/27 15:24: 21 WARN mapred.JobClient: Используйте GenericOptionsParser для анализа аргументов.Приложения должны реализовать инструмент для того же.01.1227 15:24:21 WARN mapred.JobClient: Не задан файл фляги задания.Пользовательские классы могут быть не найдены.Посмотрите JobConf (Класс) или JobConf # setJar (Строка).01.1227 15:24:21 INFO mapred.JobClient: Очистка файла промежуточной области: /tmp/hadoop/mapred/staging/4991311720439552/.staging/job_local_0002 Исключение в потоке "main" org.apache.hadoop.mapred.InvalidJobConfException: выходной каталог не задан.в org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs (FileOutputFormat.java:123) в org.apache.hadoop.mapred.JobClient $ 2.run (JobClient.java:872) в org.apache.hadmapred.JobClient $ 2.run (JobClient.java:833) в java.security.AccessController.doPrivileged (собственный метод) в javax.security.auth.Subject.doAs (Subject.java:396) в org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1127) в org.apache.hadoop.mapred.JobClient.submitJobInternal (JobClient.java:833) в org.apache.hadoop.mapreduce.Job.submit (Job.java:476) вorg.apache.hadoop.mapreduce.Job.waitForCompletion (Job.java:506) в ChainingMapReduce.main (ChainingMapReduce.java:129)
Я пытался использовать «conf» для обоих заданий и «conf "" conf1 "для соответствующих заданий.