Как запустить задание подсчета слов на пряже Hadoop из кода Java?

У меня есть требование, как показано ниже:

  1. есть 30-узловой кластер Hadoop YARN и клиентский компьютер для отправки заданий.
  2. Давайте воспользуемся примером MR с количеством слов, так как он известен во всем мире. Я хотел бы отправить и запустить задание MR подсчета слов из метода java.

Итак, какой код требуется для отправки задания? что-нибудь конкретное для конфигураций на клиентской машине?


person Zhile Zou    schedule 18.10.2013    source источник


Ответы (2)


Hadoop должен присутствовать на вашем клиентском компьютере с теми же конфигурациями, что и другие компьютеры в вашем кластере Hadoop.

Чтобы отправить задание MR из метода Java, см. java ProcessBuilder и передайте команду hadoop, чтобы запустить пример подсчета слов.

Команду и необходимые конкретные требования к количеству слов для приложения можно найти здесь

person Hamza Zafar    schedule 24.04.2015

Вы должны создать класс, реализующий Tool. Пример здесь:

public class AggregateJob extends Configured implements Tool {

  @Override
  public int run(String[] args) throws Exception {
    Job job = new Job(getConf());
    job.setJarByClass(getClass());
    job.setJobName(getClass().getSimpleName());

    FileInputFormat.addInputPath(job, new Path(args[0]));
    FileOutputFormat.setOutputPath(job, new Path(args[1]));

    job.setMapperClass(ProjectionMapper.class);
    job.setCombinerClass(LongSumReducer.class);
    job.setReducerClass(LongSumReducer.class);

    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(LongWritable.class);

    return job.waitForCompletion(true) ? 0 : 1;
  }

  public static void main(String[] args) throws Exception {
    int rc = ToolRunner.run(new AggregateJob(), args);
    System.exit(rc);
  }
}

Этот пример был получен из здесь< /а>. Как уже сказал @hamsa-zafar, клиентская машина должна иметь конфигурацию Hadoop, как и любой другой узел в кластере.

person chomp    schedule 22.08.2015