我的MR工作获取如下:
Job job = new Job(conf, "helloWorld");
在conf
上设置的任何值都可以跨节点使用。但我不确定以下内容是否有效:
在地图中
conf.set("hello", "world");
在驱动程序中
if( job.waitForCompletion(true) ){
System.out.println(conf.get("hello"));
}
在映射/减少阶段对conf
所做的修改是否在驱动程序中可见?
提交作业时,您还需要提供配置,如前所述:
Job job = new Job(conf, "helloWorld");
这是 Java 中按值调用(例如,请参阅这个不错的答案)。
如果许多映射器设置不同的值来hello
会发生什么?
我相信您正在寻找的功能是多输出。将所需的值写入一些新文件中,当任务完成后,您可以使用 hadoop 的文件系统从驱动程序中读取这些值。