如何在一个终端中提交多个mapreduce作业



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

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

在主方法的循环中调用ToolRunner.run(..)。确保修改您的Tool实例以调用Job.submit()而不是Job.waitForCompletion()-确保您的作业更多地并行运行,而不是按顺序运行(您仍然受限于集群大小/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();
  }
}

最新更新