Я использую новый 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]);