我的MR工作获得如下:
Job job = new Job(conf, "helloWorld");
conf
上设置的任何值都可在节点之间使用。但我不确定以下内容是否有效:
conf.set("hello", "world");
在驱动程序
中if( job.waitForCompletion(true) ){
System.out.println(conf.get("hello"));
}
在映射/缩减阶段对conf
进行的修改是否会在驱动程序中可见?
答案 0 :(得分:2)
当您提交作业时,您还提供了配置,如您所说:
Job job = new Job(conf, "helloWorld");
这是Java中的值调用(例如,参见this nice answer)。
如果许多地图制作者为hello
设置了不同的值,会发生什么?
我相信您正在寻找的功能是MultipleOutputs。 在任务完成时,使用hadoop的FileSystem在驱动程序中读取的一些新文件中写入所需的值。