如何在一个终端提交许多mapreduce工作?

时间:2012-03-29 22:58:48

标签: hadoop mapreduce job-scheduling

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

在一个终端,这可以提交一份工作,但如果我想提交100份工作怎么办?不可能 打开100个终端 所以我正在寻找批量工作提交方法,谢谢!

1 个答案:

答案 0 :(得分:3)

在main方法中的循环中调用ToolRunner.run(..)。请务必修改您的工具实例以调用Job.submit()而不是Job.waitForCompletion() - 确保您的作业并行运行而不是按顺序运行(您仍然可以限制群集可以并行运行的作业数量) size / config):

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();
  }
}