Как установить приоритет для задания hadoop в коде Java при его запуске? - PullRequest
2 голосов
/ 19 марта 2012

Вот так выглядит мой Джобруннер. Как установить низкий приоритет при запуске самого задания?

public int run(String[] args) throws Exception {
    this.initJob();
    Path outputPath = new Path(args[2]);
    FileInputFormat.setInputPaths(job, args[0]);
    FileOutputFormat.setOutputPath(job, outputPath);

    job.getConfiguration().set("FREQUENCY", args[3]);
    job.getConfiguration().set("TIMEZONE", args[4]);

    boolean rc = job.waitForCompletion(true);
    if (rc) {
        return 0;
    }
    return 1;
}
public void initJob() throws IOException {
    job = new Job(getConf(), "Stats Data Cruncher");
    job.setMapOutputKeyClass(Text.class);       
    job.setMapOutputValueClass(Text.class);
    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(NullWritable.class);
    Job.setInputFormatClass(LzoTextInputFormat.class);  

    job.setJarByClass(JobRunner.class);
    job.setMapperClass(StatsMapper.class);
    job.setCombinerClass(StatsCombiner.class);        
    job.setReducerClass(StatsReducer.class);
}

эта строка действительна для установки НИЗКОГО приоритета?

job.getConfiguration().set("PRIORITY", "LOW");

Ответы [ 2 ]

5 голосов
/ 19 марта 2012

Три метода, которые вы можете использовать для установки приоритета вашей работы:

  1. Установка приоритета работы пользователя в файле конфигурации xml.
  2. Установите свою работу, используя команду Hadoop, как показано ниже:

    hadoop job -set-priority

  3. в коде Java, вы можете установить приоритет задания в конфигурации:

    conf.set ("mapred.job.priority ", JOBPRIORITY.toString ());

Значение JOBPRIORITY может быть:

JobPriority.VERY_HIGH

JobPriority.HIGH

JobPriority.NORMAL

JobPriority.LOW

JobPriority.VERY_LOW

3 голосов
/ 19 марта 2012

"mapred.job.priority" - это свойство, которое вы ищете.

Вы можете установить это в своей конфигурации следующим образом:

Configuration conf = new Configuration();
// set the priority to VERY_HIGH
conf.set("mapred.job.priority", JobPriority.VERY_HIGH.toString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...