0
我有一个只执行Map函数的应用程序。 我创建了1000个作业,每个作业都有一个独特的PrefixFilter。 例子:Hadoop - 执行多地图作业
public void startNewScan(String prefix, long endTime)
Job job = new Job(conf, "MyJob");
job.setNumReduceTasks(0);
Scan scan = new Scan();
scan.setTimeRange(0, endTime);
scan.addColumn(Bytes.toBytes("col"), Bytes.toBytes("Value"));
scan.setFilter(new PrefixFilter(prefix.getBytes()));
TableMapReduceUtil.initTableMapperJob(tableName, scan, ExtractMapper.class, ImmutableBytesWritable.class, Result.class, job);
job.waitForCompletion(true);
}
现在 - 我不想等待完成,因为在执行1000年工作会带我到永远。为每项工作创建线程也不是一种选择。 这种用法有什么内置的吗? 喜欢的东西JobsPool接受所有的工作,有自己的waitForCompletion为所有作业..
在此先感谢, 乌迪
是啊,我看到了这个功能,但事情是,一旦完成,我没有办法知道天气我所做的事情是否成功,我失去了在这个过程中抛出异常的任何迹象.. – Udi
@Udi似乎有方法,如'isComplete ()','isRetired()'等,在[API](http://hadoop.apache.org/mapreduce/docs/current/api/org/ap痛/ hadoop的/映射精简/ Job.html) – CMR