MapReduce模型可分为单Reduce模式、多Reduce模式以及无Reduce模式,对于不同复杂度的指数产品生产算法,应根据需求选择不同的MapReduce计算模式。
1) 复杂度较低的产品生产算法
针对复杂度较低的遥感产品生产算法,一般只需使用一个MapReduce计算任务,此时应选择多Reduce模式或者无Reduce模式。
当指数产品算法涉及到的输入数据只包含一个文件时(如生产一景全球环境监测指数产品,只需用到一景HDF格式的Modis陆地二级产品数据),可选择无Reduce模式。其中,Map阶段负责实现指数产品的核心算法。具体计算流程如下图:
当指数产品算法涉及到的输入数据包含多个文件时(如生产一景草原干旱指数产品,需要用到地表反射率、地表温度、降雨量等不同产品),应选择多Reduce模式。其中,Map阶段负责整理输入的数据,Reduce阶段负责实现指数产品的核心算法。具体计算流程如下图:
2)复杂度较高的产品生产算法
针对复杂度较高的遥感产品生产算法,一个MapReduce计算任务往往难以满足生产需求,此时需要使用多个MapReduce任务共同完成产品的生产任务。针对这种情况,可通过使用Oozie工作流引擎来控制多个MapReduce计算任务的工作流程,解决任务之间的依赖问题。oozie的介绍及安装教程可参考另一篇博文:
在 Oracle 数据库中实现 MapReduce
Hadoop的HDFS和MapReduce