3.2.3 回调机制

回调机制是一种常见的设计模式。它将工作流内的某个功能按照约定的接口暴露给外部使用者,为外部使用者提供数据,或要求外部使用者提供数据。

Hadoop MapReduce对外提供的5个组件(InputFormat、Mapper、Partitioner、Reducer和OutputFormat)实际上全部属于回调接口。当用户按照约定实现这几个接口后,MapReduce运行时环境会自动调用它们。

如图3-5所示,MapReduce给用户暴露了接口Mapper,当用户按照自己的应用程序逻辑实现自己的MyMapper后,Hadoop MapReduce运行时环境会将输入数据解析成key/value对,并调用map()函数迭代处理。

3.2.3 回调机制 - 图1

图 3-5 MapReduce回调机制实例