首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >让你快速理解MapReduce 1框架概念

让你快速理解MapReduce 1框架概念

作者头像
星哥玩云
发布2022-06-29 21:36:43
发布2022-06-29 21:36:43
1730
举报
文章被收录于专栏:开源部署开源部署

梳理一下MapReduce 1 的基本概念,仅供参考。

上面这个图,基本上可以说明MapReduce的工作流程。下面细说,并举了一个实例。

MapReduce工作就是将处理过程划分为两个阶段:map阶段和reduce阶段。每个有key-value对作为输入和输出,其类型是由程序员选择的。程序员能够指定有个函数:map函数和reduce函数。

举一个简单的例子,具体说明MapReduce的工作细节。假设有一堆天气数据需要处理,而我们仅对天气数据中的年份和气温字段信息感兴趣。一个map函数的功能就是一个数据准备阶段,准备好Reduce阶段能够处理的数据,而reduce函数将一年中的多个气温(temperature)数据中取最大的值。map函数需要将错误数据以及一些不符合规则的数据给过滤掉,筛选出有效数据,传送给reduce阶段进行处理。

为了可视化map的工作,假设有下列输入文件中的多行记录数据

0067011990999991950051507004...9999999N9+00001+99999999999... 0043011990999991950051512004...9999999N9+00221+99999999999... 0043011990999991950051518004...9999999N9-00111+99999999999... 0043012650999991949032412004...0500001N9+01111+99999999999... 0043012650999991949032418004...0500001N9+00781+99999999999...

到了map函数处理阶段,数据就变成key-value对。

(0, 0067011990999991950051507004...9999999N9+00001+99999999999...) (106, 0043011990999991950051512004...9999999N9+00221+99999999999...) (212, 0043011990999991950051518004...9999999N9-00111+99999999999...) (318, 0043012650999991949032412004...0500001N9+01111+99999999999...) (424, 0043012650999991949032418004...0500001N9+00781+99999999999...)

关键字是线性偏离,我们在map函数中可以忽略。map 复制抓取到对应year和temperature字段,最后发布给对应的reduce函数作进一步处理。提交的数据如下:

(1950, 0) (1950, 22) (1950, −11) (1949, 111) (1949, 78)

在发送到reduce函数处理前,这个输出会被MapReduce框架处理。MapReduce框架的处理包括以关键字进行排序和分组等。在reduce处理前,看到的数据就是这样:

(1949, [111, 78]) (1950, [0, 22, −11])

reduce函数将根据关键字来迭代value,选出最大的值作为key的value,并将这对值输出。

(1949, 111) (1950, 22)

上面便是最终的输出结果序列。整个处理过程可以用下列这个流程图来说明。

后续将介绍MapReduce 2,即YARN(Hadoop 2新推出的架构)。待续!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档