Hadoop - 执行多Map作业

时间:2011-06-28 11:22:23

标签: java hadoop

我有一个只实现Map功能的应用程序。 我正在创建1000个作业,每个作业都有一个独特的PrefixFilter。 例如:

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

1 个答案:

答案 0 :(得分:0)

使用:

job.submit();

"Submit the job to the cluster and return immediately."