一、概念
MapReduce:
"相同"的key为一组,调用一次reduce方法,方法内迭代这一组数据进行计算

块、分片、map、reduce、分组、分区之间对应关系
block > split
1:1:1个block可以切成1个分片
N:1:多个block可以以切成1个分片
1:N:1个block可以切成多个分片

split > map
1:1:一个分片只能产生一个map

map > reduce
N:1:多个Map可以对应一次reduce
N:N:多个Map可以对应多次reduce
1:1:1个Map可以对应1次reduce
1:N:1个Map可以对应多次reduce

group(key)>partition
1:1:1次分组可以对应1个分区
N:1:多个分组可以对应一个分区
N:N:多个分组可以对应多个分区
1:N? >违背了原语

partition > outputfile

MapTAsk:
(1)对于一个分片,加载到内存进行Map处理,
(2)Map业务逻辑将分片中数据处理成一个个的K,V键值对
(3)将Map输出的K,V键值对加工,生成含有分区partition的K,V,P键值对
(4)经过一段时间的处理,将生成的KVP数据放到缓存里(默认100M),然后按照分区P,键key排序,最终形成一个内部有序外部无序的100M文件
(5)将这个100M缓存输出到本地文件系统里,经过map处理完成后,最终生成一堆这样的小文件
(6)将这一堆小文件进行归并形成一个内部有序外部无序的大文件


ReduceTask:
(1)将各个节点归并后的大文件中拉取(shuffler)属于同一分区的文件
这个地方会产生网络IO,map之后的文件如果很大会影响性能,因此可以对map之后的数据进行简单统计 降低拉取文件的大小
(2)将拉过来的小文件进行归并,reduce的归并强依赖map的排序结果
(3)将合并的文件调用reduce

二、Hadoop整体协作
Hadoop 1.x
1、客户端clients先启动,计算切片清单,
2、客户端将MR jar包、切片清单、配置文件等作业资源上传HDFS;
3、客户端提交任务给Job Tracker
4、Job Tracker从HDFS获取切片清单,参考Task Tracker上的资源负载情况,规划Map、Reduce任务去到的节点
5、Task Tracker通过与Job Tracker心跳,获取属于自己的任务清单
6、Task Tracker从HDFS上获取切片清单、jar、配置,map运行map任务,Reduce运行Reduce任务,
7、Reduce任务将生成结果文件返回给HDFS
8、客户端通过HDFS下载文件 查看结果

弊端:Job Tracker有两件事:任务调度和监控整个集群资源负载,存在单点故障、负载过重、资源管理和计算调度强耦合
因此有了Hadoop 2.x的YARN

【Hadoop学习之六】MapReduce原理的更多相关文章

  1. hadoop学习(七)----mapReduce原理以及操作过程

    前面我们使用HDFS进行了相关的操作,也了解了HDFS的原理和机制,有了分布式文件系统我们如何去处理文件呢,这就的提到hadoop的第二个组成部分-MapReduce. MapReduce充分借鉴了分 ...

  2. hadoop笔记之MapReduce原理

    MapReduce原理 MapReduce原理 简单来说就是,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce). 例子: 100GB的网站访问日志文件,找出访问次数最多的I ...

  3. [Hadoop]浅谈MapReduce原理及执行流程

    MapReduce MapReduce原理非常重要,hive与spark都是基于MR原理 MapReduce采用多进程,方便对每个任务资源控制和调配,但是进程消耗更多的启动时间,因此MR时效性不高.适 ...

  4. Hadoop学习笔记—MapReduce的理解

    我不喜欢照搬书上的东西,我觉得那样写个blog没多大意义,不如直接把那本书那一页告诉大家,来得省事.我喜欢将我自己的理解.所以我会说说我对于Hadoop对大量数据进行处理的理解.如果有理解不对欢迎批评 ...

  5. Hadoop学习之Mapreduce执行过程详解

    一.MapReduce执行过程 MapReduce运行时,首先通过Map读取HDFS中的数据,然后经过拆分,将每个文件中的每行数据分拆成键值对,最后输出作为Reduce的输入,大体执行流程如下图所示: ...

  6. 【尚学堂·Hadoop学习】MapReduce案例2--好友推荐

    案例描述 根据好友列表,推荐好友的好友 数据集 tom hello hadoop cat world hadoop hello hive cat tom hive mr hive hello hive ...

  7. 【尚学堂·Hadoop学习】MapReduce案例1--天气

    案例描述 找出每个月气温最高的2天 数据集 -- :: 34c -- :: 38c -- :: 36c -- :: 32c -- :: 37c -- :: 23c -- :: 41c -- :: 27 ...

  8. hadoop学习day3 mapreduce笔记

    1.对于要处理的文件集合会根据设定大小将文件分块,每个文件分成多块,不是把所有文件合并再根据大小分块,每个文件的最后一块都可能比设定的大小要小 块大小128m a.txt 120m 1个块 b.txt ...

  9. Hadoop学习(3)-mapreduce快速入门加yarn的安装

    mapreduce是一个运算框架,让多台机器进行并行进行运算, 他把所有的计算都分为两个阶段,一个是map阶段,一个是reduce阶段 map阶段:读取hdfs中的文件,分给多个机器上的maptask ...

随机推荐

  1. 对于python setup install的程序如何删除干净

    python很好用,尤其是用过easy_install的朋友更是觉得它的便捷,卸载命令也很简单 easy_install -m package-name但是面对源码安装的怎么办呢? setup.py ...

  2. rar压缩类

    using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; namespa ...

  3. oracle中is和as的区别

    在存储过程(PROCEDURE)和函数(FUNCTION)中没有区别:在视图(VIEW)中只能用AS不能用IS:在游标(CURSOR)中只能用IS不能用AS.

  4. SOCKS5 协议解析

    代理 根据 HTTP 1.1 的定义,proxy 是: An intermediary program which acts as both a server and a client for the ...

  5. 教你使用SQL数据库复制系列(1-7)

    SQL Server 复制系列(文章索引) 一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 前言(Introduction) 复制逻辑结构图(Construction) ...

  6. VGA线 1080P之伤 <中秋节篇>

    故障:通过一台笔记本,在一台高清的电视机上使用VGA线进行视频传输,分辩率最高只能显示1600*1200,为什么不是1080P? 哎,我也很郁闷,查了相关的资料~电视机是最高支持1080P分辩率的,笔 ...

  7. jenkins openshift 持续集成

    参数部分没有 不要照抄,只供参考 需求: CI利用confd+etcd生成配置文件 CI把git的COMMIT 传到openshift的buildconfigs #!/bin/bash echo ec ...

  8. shell 中 标准输出和错误输出

    命令 标准输出 标准错误 >/dev/null 2>&1 丢弃 丢弃 2>&1 >/dev/null 丢弃 屏幕 1>/dev/null 丢弃 屏幕 2& ...

  9. [Guitar self-learning] 基本乐理知识1. 度,升降记号#/b

    度:是音程上面的单位, 指每两个音程(音名)之前的音距.(就像我们说身高时的cm一样, 用来表明当时的音高.) 升记号:#   , 表明在当前的音高下, 升半个音高. 如 #3  ==  4 降记号: ...

  10. linux安装svn客户端rabbitvcs

    我们都知道,自从svn出道以来,很多人都预言,cvs将会被其取代.就如同他们预言maven要取代ant一样.可见,svn的流行.在Windows中,最常用到的开源免费的svn客户端就是Tortoise ...