一、MapReduce是什么?
Hadoop MapReduce是一个软件框架,基于该框架能够容易的编写应用程序,这 些应用程序能够运行在由上千个商用机器组成的大集群上,并以一种可靠地,具有容错能了的方式并行的处理上TB级别的海量数据集。
二、MapReduce的特点?
1.软件框架
2.并行处理
3.可靠且容错
4.大规模集群
5.海量数据集
三、MapReduce做什么?
MapReduce的思想就是“分而治之”
1、Mapper负责“分”
把复杂的任务分解成若干个“简单的任务”来处理。“简单的
任务”包含三层含义“:
(1)数据或计算的规模相对原任务要大大缩小
(2)就近计算原则,任务会分配到存放着所需数据的节点上进行计算
(3)这些小任务可以并行计算彼此间几乎没有依赖关系。
2、Reducer负责对map阶段的结果进行汇总。
至少需要多少个Reducer,可以根据具体问题,通过在mapred-site.xml配置文件里设置参数mapred.reduce.tasks的值,缺省值为1。
四、MapReduce工作机制
mapreduce作业工作流程图
作业执行涉及4个独立的实体
1.客户端,用来提交MapReduce作业
2.JobTracker,用来协调作业的运行
3.TaskTracker,用来处理作业划分后的任务
4.HDFS,用来在其他实体间共享作业文件
MapReduce运行步骤:
步骤一:
--首先是客户端要编写好mapreduce程序,配置好mapreduce的作业也就是job,接下来就是提交job了,提交job是提交到JobTracker上的,这个时候JobTracker就会构建这个job