java - 传递给 Mapper 函数(setup、map、run、cleanup)的 Context 是否始终相同?

标签 java hadoop

  1. 传递给设置、映射、运行、清理的上下文是否相同 映射器?
  2. 会不会有不一样的情况?
  3. 能否将上下文作为设置中的成员字段?

Mapper

最佳答案

是的,在相同 映射器中,它是setup() 中的同一个上下文 对象。 , map()cleanup() .

如您所见,这些方法是从 run() 中调用的,该方法如下所示:

public void run(Context context) throws IOException, InterruptedException {
    setup(context);
    while (context.nextKeyValue()) {
      map(context.getCurrentKey(), context.getCurrentValue(), context);
    }
    cleanup(context);
  }

这应该回答您的第 1 点和第 2 点,对于第 3 点,您可以重写 run 方法以获得更多控制,正如 Javadoc 所建议的那样:

Expert users can override this method for more complete control over the execution of the Mapper.

也许您不需要为上下文保留成员字段,但您当然可以。

此外,虽然对象相同,但它的属性值可以在任何方法中设置或取消设置,使其处于与传递给另一个方法(设置、映射或清理)时不同的状态。

关于java - 传递给 Mapper 函数(setup、map、run、cleanup)的 Context 是否始终相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15935426/

相关文章:

java - SSL/双向 SSL 通信问题

java - 斯坦福 CoreNLP - 关系注释器

java - 我可以覆盖方法类型上的@RequestMapping 吗?

hadoop - 删除 DataNode 目录时的 HDFS 行为

hadoop - 如何搜索具有给定列名的所有表并返回 Hadoop/Hive 中哪些表具有该列名?

java - Wicket:调色板设置默认选中

java - 无法解析导入 com.google.maps.android.R

hadoop - 解压缩文件,然后上传到HDFS

hadoop - 使用内存 channel 增加水槽中的文件大小

Linux Centos6 VM 如何下载bigtop?