MapReduce运行步骤
1、【input阶段】获取输入数据进行分片作为map的输入
2、【map阶段】过程对某种输入格式的一条记录解析一条或多条记录
3、【shffle阶段】对中间数据的控制,作为reduce的输入
4、【reduce阶段】对相同key的数据进行合并
5、【output阶段】按照格式输出到指定目录
MapReduce作业(job):
1
| 客户端需要执行的一个工作单元,它包括输入数据,MapReduce程序和配置信息
|
任务(task):
1
| Hadoop将作业分成若干个小任务来执行,其中包括两类任务:map任务和reduce任务。这些任务由yarn进行调度并运行在集群的节点上
|
数据块(block):
1
| HDFS上的文件被划分为大小相同的数据块,作为独立的存储单元,数据块的默认大小为128m
|
1 2 3 4
| Hadoop将MapReduce的数据划分为等长的小数据块,输入分片,或者简称“分片”。InputSplit分为两种情况: -如果数据记录位于一个数据块中,InputSplit可表示完整的数据记录集,例如第一个InputSplit -如果数据记录跨两个数据块,InputSplit中会包含第二个数据块的位置以及所需完整数据的偏移量。如第2-5个InputSplit。 默认情况下InputSprit与block大小一致
|
Map阶段的运行结果是保存在本地文件上的