reduce原理111111
MapReduce的原理:分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)
mapreduce类比
MapReduce的原理:分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)
mapreduce:一个大任务拆分成多个小任务(map),并行执行完成之后,再合并结果(reduce)
MapReduce的原理
1.一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)
2.使用过程
MapReduce处理数据过程主要分成2个阶段:Map阶段和Reduce阶段。首先执行Map阶段,再执行Reduce阶段。Map和Reduce的处理逻辑由用户自定义实现,但要符合MapReduce框架的约定。 在正式执行Map前,需要将输入数据进行”分片”。所谓分片,就是将输入数据切分为大小相等的数据块,每一块作为单个Map Worker的输入被处理,以便于多个Map Worker同时工作。 分片完毕后,多个Map Worker就可以同时工作了。每个Map Worker在读入各自的数据后,进行计算处理,最终输出给Reduce。Map Worker在输出数据时,需要为每一条输出数据指定一个Key。这个Key值决定了这条数据将会被发送给哪一个Reduce Worker。Key值和Reduce Worker是多对一的关系,具有相同Key的数据会被发送给同一个Reduce Worker,单个Reduce Worker有可能会接收到多个Key值的数据。 在进入Reduce阶段之前,MapReduce框架会对数据按照Key值排序,使得具有相同Key的数据彼此相邻。如果用户指定了”合并操作”(Combiner),框架会调用Combiner,将具有相同Key的数据进行聚合。Combiner的逻辑可以由用户自定义实现。这部分的处理通常也叫做”洗牌”(Shuffle)。 接下来进入Reduce阶段。相同的Key的数据会到达同一个Reduce Worker。同一个Reduce Worker会接收来自多个Map Worker的数据。每个Reduce Worker会对Key相同的多个数据进行Reduce操作。最后,一个Key的多条数据经过Reduce的作用后,将变成了一个值。
MapReduce的核心思想就是分而治之,将一个大人物分成多个小任务,并行执行之后,在合并结果
过程 :
例 :
MapReduce原理
分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)
MapReduce 即分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)。
100GB的网站访问日志文件,找出访问次数最多的IP地址
1、将日志切分
2、统计每个日志中每个ip出现的次数
3、最后按照ip进行统计,将ip相同的放在一个reduce中
关键是进行交换
扑克牌统计缺少哪张牌
1、将牌随机分为5份
2、统计每种牌,每个花色出现多少次(如:split0中红心A出现20次)
3、再次统计,将每份牌的中不同花色,不同牌,进行统计
4、筛选结果
MapReduce:分而治之,一个大任务分成多个小的子任务(map),多个节点并行执行后,合并结果(reduce)(合并的过程称为reduce)
MapReduce 流程原理
MapReduce图示
这块需要自己好好看看原理
MapReduce真谛