https://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapreduce/mapper.html#method.summary
org.apache.hadoop.mapreduce.mapper的run(context)方法
a). Expert users can override this method for more complete control over the execution of the Mapper.
当前run(context)方法的默认行为是什么。
如果我重写run(context),根据文档会得到什么样的特殊控件?
在您的实现中是否有人重写了此方法?
1条答案
按热度按时间mnowg1ta1#
当前run(context)方法的默认行为是什么。
默认实现在mapper类的apache hadoop源代码中可见:
总结一下:
呼叫
setup
用于一次性初始化。遍历输入中的所有键值对。
将键和值传递给
map
方法实现。呼叫
cleanup
一次性拆卸。如果我重写run(context),根据文档会得到什么样的特殊控件?
默认实现总是遵循单个线程中的特定执行序列。重写这一点很少见,但它可能会为高度专业化的实现提供可能性,例如不同的线程模型或尝试合并冗余的键范围。
在您的实现中是否有人重写了此方法?
在apache hadoop代码库中,有两种覆盖:
ChainMapper
允许将多个Mapper
在单个Map任务中执行的类实现。覆盖run
设置表示链的对象,并通过Map器链传递每个输入键/值对。MultithreadedMapper
允许多线程执行另一个Mapper
班级。那个Mapper
类必须是线程安全的。覆盖run
开始多个线程迭代输入键值对并将它们传递给底层Mapper
.