1、概述:
1、MapReduce 是一个分布式计算软件架构,支持编写处理大数据量(TB)以上应用程序。
2、MapReduce程序可以在几千个节点组成的集群上并行执行。集群节点使用通用的硬件,以硬件冗余保证系统的可靠性和可用性,而mapreduce 框架则从软件上保证处理任务的可靠性和容错性。
3、在Hadoop中每个Mapreduce应用程序被表示成一个作业,每个作业又被分成多个任务。
应用程序向框架提交一个MapReduce作业,作业一般会将输入的数据集合分成彼此独立的数据块,然后由Map任务以并行方式完成对数据分块的处理。框架对Map的输出进行排序,之后输入到reduce任务。Mapreduce作业的输入输出都存储在一个如HDFS系统上,框架调度并监控任务的执行,当任务失败时框架会重新启动任务。
4、通常情况,集群中的一个节点即是计算节点,又是存储节点。也就是MapReduce框架和HDFS共同运行在多个节点之上。这种运行效率比较高。框架可以在数据所在的节点上调度任务执行,大大节省了集群节点间的整体宽带。
2、处理步骤:
Mapreduce数据处理分为split、Map、shuffle和Reduce4个步骤。应用程序实现map和reduce步骤的逻辑;Split和Shuffle步骤框架自动完成。