2.6 小结
Hadoop MapReduce直接诞生于搜索领域,以易于编程、良好的扩展性和高容错性为设计目标。它主要由两部分组成:编程模型和运行时环境。其中,编程模型为用户提供了5个可编程组件,分别是InputFormat、Mapper、Partitioner、Reducer和OutputFormat;运行时环境则将用户的MapReduce程序部署到集群的各个节点上,并通过各种机制保证其成功运行。
Hadoop MapReduce处理的数据一般位于底层分布式文件系统中。该系统往往将用户的文件切分成若干个固定大小的block存储到不同节点上。默认情况下,MapReduce的每个Task处理一个block。MapReduce主要由四个组件构成,分别是Client、JobTracker、TaskTracker和Task,它们共同保障一个作业的成功运行。一个MapReduce作业的运行周期是,先在Client端被提交到JobTracker上,然后由JobTracker将作业分解成若干个Task,并对这些Task进行调度和监控,以保障这些程序运行成功,而TaskTracker则启动JobTracker发来的Task,并向JobTracker汇报这些Task的运行状态和本节点上资源的使用情况。