Моя программа следует за итеративным отображением/сокращением. И он должен остановиться, если будут выполнены определенные условия. В любом случае я могу установить глобальную переменную, которая может быть распределена по всем задачам map/reduce и проверить, достигает ли глобальная переменная условие завершения.
Что-то вроде этого.
While(Condition != true){
Configuration conf = getConf();
Job job = new Job(conf, "Dijkstra Graph Search");
job.setJarByClass(GraphSearch.class);
job.setMapperClass(DijkstraMap.class);
job.setReducerClass(DijkstraReduce.class);
job.setOutputKeyClass(IntWritable.class);
job.setOutputValueClass(Text.class);
}
Где условие - глобальная переменная, которая изменяется во время/после каждой карты/уменьшает выполнение.