3.6 小结
MapReduce编程模型直接决定了MapReduce的易用性。本章从简单地使用实例、设计原理以及调用时机等方面介绍了MapReduce编程模型中的各个组件。
从整个体系结构上看,整个编程模型位于应用程序层和MapReduce执行器之间,可以分为两层:第一层是最基本的Java API,第二层构建于Java API之上,添加了几个方便用户编写复杂的MapReduce程序和利用其他语言编写MapReduce程序的工具。
Java API分为新旧两套API。新API在旧API基础上封装而来,在易用性和扩展性方面更好。
为了方便用户采用非Java语言编写MapReduce程序,Hadoop提供了Hadoop Streaming和Hadoop Pipes两个工具。它们本质上都是一个MapReduce作业,区别在于Java语言与非Java语言之间的通信机制。
考虑到实际应用中,用户有时不只是编写单一的MapReduce作业,而是存在复杂依赖关系的DAG作业(工作流),Hadoop MapReduce提供了JobControl和ChainMapper/ChainReducer两个工具。