加入收藏 | 设为首页 | 会员中心 | 我要投稿 揭阳站长网 (https://www.0663zz.cn/)- 机器学习、行业智能、决策智能、云计算、AI应用!
当前位置: 首页 > 站长资讯 > 评论 > 正文

Hadoop 生态之 MapReduce

发布时间:2021-03-13 13:03:23 所属栏目:评论 来源:互联网
导读:这段代码中,不难看出程序核心是 map 函数和 reduce 函数。是否 MapReduce 就是由这两者组成的?接着往下看。 2.3 Map 和 Reduce 2.3.1 Map 在 WordCount 案例中,明显看到 map 函数的输入主要是一个 Context 在这里暂时性忽略,其是 Mapper 类的内部抽象类,

这段代码中,不难看出程序核心是 map 函数和 reduce 函数。是否 MapReduce 就是由这两者组成的?接着往下看。

2.3 Map 和 Reduce

2.3.1 Map

在 WordCount 案例中,明显看到 map 函数的输入主要是一个

Context 在这里暂时性忽略,其是 Mapper 类的内部抽象类,一般计算中不会用到,可以先当做“上下文”理解。

map 函数计算过程是: 将这行文本中的单词提取出来,针对每个单词输出一个

2.3.2 Reduce

接着就来看看 reduce ,这里输入参数 Values 就是上面提到的由很多个 1 组成的集合,而 Key 就是具体“单词” word。

它的计算过程是: 将集合里的1求和,再将单词(word)与这个和(sum)组成一个

假设有两个数据块的文本数据需要进行词频统计,MapReduce 计算过程如下图所示:



 

到这都很容易理解,毕竟只是个 HelloWorld 的例子~,但整个MapReduce过程中最关键的部分其实是在 map 到 reduce 之间。

还拿上面例子来说:统计相同单词在所有输入数据中出现的次数,一个 Map 只能处理一部分数据,而热点单词就很可能会出现在所有 Map 中了,意味着同一单词必须要合并到一起统计才能得到正确结果。这种数据关联几乎在所有的大数据计算场景都需要处理,如果是例子这种的当然只对 Key 合并就OK了,但类似数据库 join 操作这种较复杂的,就需对两种类型(或更多)的数据依据 Key 关联。

这个数据关联操作在 MapReduce中的叫做:shuffle。

2.4 shuffle

shuffle 从字面意思来看,洗牌。下面是一个完整的MR过程,看一看如何洗牌。

(编辑:揭阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读