Подтвердить что ты не робот

Передача аргументов в карты Hadoop

Я использую новый API Hadoop и ищу способ передать некоторые параметры (несколько строк) в mappers.
Как я могу это сделать?

Эти решения работают для старого API:

JobConf job = (JobConf)getConf();
job.set("NumberOfDocuments", args[0]);

Здесь "NumberOfDocuments" - это имя параметра, и его значение считывается из "args[0]", аргумента командной строки. После того, как вы установите эти аргументы, вы можете получить его значение в редукторе или картографе следующим образом:

private static Long N;
public void configure(JobConf job) {
     N = Long.parseLong(job.get("NumberOfDocuments"));
}

Обратите внимание: сложная часть состоит в том, что вы не можете устанавливать такие параметры:

Configuration con = new Configuration();
con.set("NumberOfDocuments", args[0]);
4b9b3361

Ответ 1

В основном методе задайте требуемый параметр, как показано ниже, или используя параметр - D при выполнении задания.

Configuration conf = new Configuration();
conf.set("test", "123");

Job job = new Job(conf);

В преобразователе/​​редукторе получим параметр как

Configuration conf = context.getConfiguration();
String param = conf.get("test");