В недавнем Hadoop (например,> = 0,2 до 2,4+) вы устанавливали этот тип параметров во время настройки задания:
conf = new JobConf(MyJarClass);
conf.set("myStringOption", "myStringValue");
conf.set("myIntOption", 42);
И получить эти параметры в configure()
методе классов картографа / редуктора:
public static class MyMapper extends MapReduceBase implements Mapper<...> {
Integer myIntegerOption;
String myStringOption;
@Override
public void configure(JobConf job) {
super.configure(job);
myIntegerOption = job.getInt("myIntOption", -1);
// nb: last arg is the default value if option is not set
myStringOption = job.get("myStringOption", "notSet");
}
@Override
public void map(... key, ... value,
OutputCollector<..> output, Reporter reporter) throws IOException {
// here you can use the options in your processing
processRecord(key, value, myIntOption, myStringOption);
}
}
Обратите внимание, что configure()
будет вызван один раз, прежде чем какие-либо записи будут переданы на карту или уменьшены.