博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MapReduce
阅读量:4299 次
发布时间:2019-05-27

本文共 1691 字,大约阅读时间需要 5 分钟。

第一课在讲什么:(这么一梳理就很清楚了)

讲了一个MapReduce的工作流程,主要分为Map阶段和Reduce阶段。首先数据分块,分块之后我们把分块的数据做处理,比如说我们计数,计数我们会把它处理成K-V的形式,然后做一下combine 局部合并(单台机器上的合并),然后做shuffle数据迁移,最后reduce过程就是把所有机器计算结果汇总到一台机器上,形成最终结果。

combinne的好处:多台机器先进行局部并行合并,多把任务放到Map阶段。几个Mapper在不同机器上并行处理。

如果都堆到Reduce,那就是它一台机器来合并,任务量太大。

原则:尽量减少数据迁移(数据量越少越好,鼓励局部合并);尽量增加并行处理。

 

第二节

总结梳理一下:

1.数据进来先Mapper处理,比如说对单词计数,map的输入是key-value,输出也是一个key-value

2.combine局部合并统计结果,相同单词的次数合并。结果还是key-value。

3.Partitioner分区,也就是确定把哪些数据传到哪个Reducer上。

确定的方法:对Key算出哈希值,哈希值是整型。用哈希值对Reducer数量取模,获得结果即可确定送到哪个Reducer上。

4.shuffle/sort:数据送到Reducer的过程就叫shuffle,同时内置会按key来排序

5.Reducer:最后的集中合并。

 

从map输入的是key-value,输出的是一堆key-value,因为对他分解了。

而传给reducer的时候,是按key排好序,并且把value以group的形式传进去,也就是说key还是那个key,但是相同key的value被我组成了一个list。最后我完成最终的合并处理,但是最终结果依然是key-value。

 

什么情况下可以把Reducer复用当做Combiner(也就是说,不做局部合并,直接在Reducer上做合并):

只有当操作(如找最大值)满足交换律和结合律的时候,就是说先做谁都一样,比如找最大值。那么就可以。

如果是找平均值,那肯定不能复用当做combiner,你不可能先在Mapper1上求平均值,再到Mapper2上求平均值,最后到总机器上求这两个平均值的平均值。

 

 

 

根据业务逻辑自己写partitioner ,而不一定要用Hash来算。

 

 

1. Mapper是一定要有的

2.Combiner是可有可无的

3.Partitioner是一定有的(数据按某种规则划分,把Mapper后的结果通过Partitioner决定发送到哪个Reducer上。)

shuffle数据迁移

4.Reducer有时候可以没有

 

Partitioner非常简单:

缺省的Partitioner称为Hash Partitioner,Hashcode我们都知道,每个java对象都有一个hashcode(整型)。

那它如何找到要送到哪个Reducer呢?我们启动时,我们是知道我们有3(或者n个)个Reducer,那么拿Hashcode对3取模(取余),结果只能是0 1 2,就知道发送到哪个Reducer了。

只要Key是相同的,都会被送到同一个Reducer。 就这么简单。

【就好比说你让纪晓岚送信,你要告诉他这信是送给谁的,不然怎么送呢。它知道找谁的原理 他就是通过这个key来算出key的哈希值,而哈希值我们知道他是一个整型,再对Reducer数量进行取模就可以知道送到哪个Reducer了】

 

Shuffle:只要key一样,不管你来自哪个机器的Mapper,我们就送到同一个Reducer,送的过程就叫数据迁移(shuffle)。

Shuffle迁移时会帮你按key来进行排序,这样到Reducer时数据就没那么乱了。

 

Hash:Hash的作用是把不同长度的一串数据,压缩成定长的数据,使格式固定下来。

每一个字符串或者对象会通过Hash运算,算出一个哈希值。所以基于这样的特点,相同对象的哈希码一定相同,但是反过来却不准确,很难逆向算。

特点是:输入域无穷,输出域有穷。

 

 

 

 

 

 

 

 

 

转载地址:http://lwvws.baihongyu.com/

你可能感兴趣的文章
资金流入流出计算方法
查看>>
海龟交易法则07_如何衡量风险
查看>>
海龟交易法则08_风险与资金管理
查看>>
海龟交易法则09_海龟式积木
查看>>
海龟交易法则10_通用积木
查看>>
海龟交易法则14_掌控心魔
查看>>
海龟交易法则15_万事俱备
查看>>
海龟交易法则16_附原版海龟交易法则
查看>>
克罗谈投资策略01_期货交易中的墨菲法则
查看>>
克罗谈投资策略02_赢家和输家
查看>>
克罗谈投资策略03_你所期望的赌博方式
查看>>
克罗谈投资策略04_感觉与现实
查看>>
通向财务自由之路01_导读
查看>>
通向财务自由之路02_成功的决定因素:你
查看>>
中低频量化交易策略研发01_引言
查看>>
中低频量化交易策略研发06_推进的择时策略
查看>>
史丹·温斯坦称傲牛熊市的秘密
查看>>
期货市场技术分析01_理论基础
查看>>
期货市场技术分析02_趋势的基本概念
查看>>
期货市场技术分析03_主要反转形态
查看>>