1

我正在使用 mapreduce 运行程序,提交一项工作:我可以使用以下格式 ./hadoop jar program.jar 参数

在一个终端中,这可以提交一份工作,但如果我想提交 100 个工作呢?无法
打开100个终端,所以我正在寻求批量提交工作的方法,谢谢!

4

1 回答 1

3

您在 main 方法的循环中调用 ToolRunner.run(..)。请务必修改您的 Tool 实例以调用Job.submit()而不是Job.waitForCompletion()- 确保您的作业更多地并行运行而不是顺序运行(您仍然受限于集群大小/配置可以并行运行的作业数量):

public class MyDriver extends Configured implements Tool {
  public static void main(String args[]) {
    for (int x = 0; x < 100; x++) {
      ToolRunner.run(new MyDriver(), args);
    }
  }

  public int run(String args) {
    Job job = new Job(getConf());

    // job set up
    // ...

    job.submit();
  }
}
于 2012-03-30T00:42:38.333 回答