橙子05-Mapreduce核心思想与工作过程
Mapreduce核心思想与工作过程
- Mapreduce核心思想与核心函数
- Mapreduce核心思想
- Mapreduce核心函数
- Mapreduce工作过程
本文有配套视频可以在B站观看 《Mapreduce核心思想与工作过程》https://www.bilibili.com/video/BV1MA41137ed?from=search&seid=16934790601390688979
Mapreduce核心思想与核心函数
Mapreduce核心思想
MapReduce是一种并行编程模型,是Hadoop生态系统的核心组件之一,**“分而治之”**是MapReduce的核心思想,它表示把一个大规模的数据集切分成很多小的单独的数据集,然后放在多个机器上同时处理。
我们用一个通俗易懂的例子来体现“分而治之”的思想。
如果一个人要做一个三明治,需要切面包、煎培根、切西红柿、洗生菜,然后组合,假设每个步骤都需要2分钟的话,我们做好一个三明治至少需要8分钟。(传统做法中没有“分而治之”的思想)
但是,如果我们把制作三明治的工作分成四个部分同时进行,每部分都有单独的人来处理,那么切面包、煎培根、切西红柿、洗生菜四项工作同时开始同时结束,总共只需要2分钟,再加上组合1分钟,那么采用分工合作的方式完成三明治只需要3分钟。这就是我们MapReduce的“分而治之”的思想了。
Mapreduce核心函数
MapReduce把整个并行运算过程高度抽象到两个函数上,一个是map另一个是reduce。map函数就是分而治之中的“分”,reduce函数就是分而治之中的“治”。
MapReduce把一个存储在分布式文件系统中的大规模数据集切分成许多独立的小的数据集,然后分配给多个map任务处理。然后map任务的输出结果会进一步处理成reduce任务的输入,最后由reduce任务进行汇总,然后上传到分布式文件系统中。
Map函数:map函数会将小的数据集转换为适合输入的<key,value>键值对的形式,然后处理成一系列具有相同key的<key,value>作为输出,我们可以把输出看做list(<key,value>)
Reduce函数:reduce函数会把map函数的输出作为输入,然后提取具有相同key的元素,并进行操作,最后的输出结果也是<key,value>键值对的形式,并合并成一个文件。
Mapreduce工作过程
我画了一个简单图来展示mapreduce的工作过程
如图展示的就是MapReduce的工作过程,一共分为input、split、map、shuffle、reduce、output六个阶段。我们还是用前面介绍的做三明治的例子来演示一下MapReduce的工作流程:
①input阶段相当于准备食材的步骤;
②split阶段相当于分食材的步骤,数据切片1表示面包、数据切片2表示培根、数据切片3表示西红柿、数据切片4表示生菜;
③map阶段相当于切面包、煎培根、切西红柿、洗生菜四个步骤同时进行;
④shuffle阶段相当于把切好的食材分类,存放、汇总;
⑤reduce阶段相当于整合组装成三明治;
⑥output阶段相当于打包。
有了这个通俗易懂的例子加上前面map函数和reduce函数的介绍,我们再来理解MapReduce的工作过程就很轻松了。
(1) input阶段:将数据源输入到MapReduce框架中
(2) split阶段:将大规模的数据源切片成许多小的数据集,然后对数据进行预处理,处理成适合map任务输入的<key,value>形式。
(3) map阶段:对输入的<key,value>键值对进行处理,然后产生一系列的中间结果。通常一个split分片对应一个map任务,有几个split就有几个map任务。
(4) shuffle阶段:对map阶段产生的一系列<key,value>进行分区、排序、归并等操作,然后处理成适合reduce任务输入的键值对形式。
(5) reduce阶段:提取所有相同的key,并按用户的需求对value进行操作,最后也是以<key,value>的形式输出结果。
(6) output阶段:进行一系列验证后,将reduce的输出结果上传到分布式文件系统中。
橙子05-Mapreduce核心思想与工作过程相关推荐
- 【Zigbee技术入门教程-02】一图读懂ZStack协议栈的核心思想与工作机理
[Zigbee技术入门教程-02]一图读懂ZStack协议栈的核心思想与工作机理 广东职业技术学院 欧浩源 Z-Stack协议栈是一个基于任务轮询方式的操作系统,其任务调度和资源分配由操作系统抽 ...
- MapReduce核心思想
MapReduce核心思想 需求:有一个五层的图书馆,需要获取图书馆中一共有多少本书. (1)只有一个人时,是能一本一本的数!工作量巨大,耗时较长. (2)分配五个人由你支配.此时你怎么支配? 五个人 ...
- MapReduce核心思想及其步骤原理
1.1MapReduce核心思想 分而治之,先分后和:将一个大的.复杂的工作或任务,拆分成多个小任务,最终合并. MapReduce是由Map和Redecu组成 Map:将数据进行拆分 Reduce: ...
- Hyperledger Fabric 排序服务核心原理和工作过程
Hyperledger 源码分析之 Fabric 排序服务在超级账本 Fabric 网络中起到十分核心的作用.所有交易在发送给 Committer 进行验证接受之前,需要先经过排序服务进行全局排序. ...
- 一、领域驱动设计核心思想与设计过程
一.软件发展的必然规律 1.软件是对真是世界的模拟,但真实世界软件十分复杂. 2.人在认识真实世界的时候总是有一个从简单到复杂的过程 3.软件需求的变更成为一种必然的事情,并且总是由简单向复杂转变 4 ...
- MapReduce介绍及核心思想
1.定义 MapReduce 是一个分布式运算程序的编程框架,是用户开发"基于 Hadoop 的数据分析应用"的核心框架. MapReduce 核心功能是将用户编写的业务逻辑代码和 ...
- 人的思想的成长过程是一个潜意识不断成长并替代思维完成细节工作的过程
人的思想的成长过程是一个潜意识不断成长并替代思维完成细节工作的过程 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文禁止转载 本文禁止转载. 潜意识和思维,是 ...
- SSM Chapter 05 Spring 核心概念
SSM Chapter 05 Spring 核心概念 笔记 本章目标: 理解Spring IoC的原理 掌握Spring IoC的配置 理解Spring AOP的原理 掌握Spring AOP的配置 ...
- 深入理解Spark:核心思想与源码分析
大数据技术丛书 深入理解Spark:核心思想与源码分析 耿嘉安 著 图书在版编目(CIP)数据 深入理解Spark:核心思想与源码分析/耿嘉安著. -北京:机械工业出版社,2015.12 (大数据技术 ...
最新文章
- 中国首次纳米孔测序大会:不可错过的教学专场和技术诊断
- 聚类算法是什么?聚类(clustering)有哪些常用的评估方法?评估方法的公示是什么?轮廓系数(Silhouette Coefficient)、平方根标准误差、R方、ARI分别是什么?
- 《利用python进行数据分析》读书笔记--第十章 时间序列(二)
- 卡扇区数据教程_硬盘有坏道了?如何对硬盘进行扇区级复制及数据恢复?
- Objective-C征途:Hello Objective-C
- javaone_JavaOne 2014:会议与合同利益冲突
- android 高并发弹幕,高并发实时直播弹幕研发实践
- oracle表与表之间更新,Oracle 两个表之间更新的实现
- Mysql更新计数器_MySQL实现计数器如何在高并发场景下更新并保持数据正确性
- TEST ON 平安夜
- Springboot项目中static文件和templates文件的区别
- Delphi 7 ADO使用
- java1.8 ojdbc14.jar_ojdbc14_g.jar与ojdbc14.jar区别
- 用SPSS做数据分析
- PWM驱动MOS管H桥电路
- 荣耀magicbookpro升级鸿蒙,荣耀MagicBook Pro 2020到底好不好?答案就在这里
- 分析:G20相争 IMF得利
- BZOJ1189 [HNOI2007]紧急疏散evacuate
- The resource identified by this request is only capable of generating respon
- cmd 批量命名,批量删除