Hadoop组成

Hadoop HDFS:一个高可靠、高吞吐量的分布式文件系统,对海量数据的存储。
Hadoop MapReduce:一个分布式的资源调度和离线并行计算框架。
Hadoop Yarn:基于HDFS,用于作业调度和集群资源管理的框架。

本篇将学习分布式并行计算框架MapReduce

什么是计算框架?

计算框架是指实现某项任务或某项工作从开始到结束的计算过程或流的结构。用于去解决或者处理某个复杂的计算问题。(如图)

什么是并行计算框架?

是指为更快的计算某项任务或某项工作,将计算程序分发到多台服务器上,使每个服务器计算总任务的一部分,多台服务器同时计算的框架。

什么是分布式计算?

分布式计算:是一种计算方法,是将该应用分解成许多小的部分,分配给多台计算机进行处理。这样可以节约整体计算时间,大大提高计算效率。

Hadoop为什么比传统技术方案快?

核心原因一:使用分布式存储。
核心原因二:使用分布式并行计算框架。

理解MapReduce思想

需求:有一个五层的图书馆,需要获取图书馆中一共有多少本书。
只有一个人时,是能一本一本的数!工作量巨大,耗时较长。

分配五个人由你支配。此时你怎么支配?
五个人,每个人数一层的书量,最终将五个人的量汇总求和,就是图书馆中最终书的数量。

MapReduce的思想核心是“分而治之,先分后合”。即将一个大的、复杂的工作或任务,拆分成多个小的任务,并行处理,最终进行合并。适用于大量复杂的、时效性不高的任务处理场景(大规模离线数据处理场景)。即使是发布过论文实现分布式计算的谷歌也只是实现了这种思想,而不是自己原创。
MapReduce由两部分组成,分别是Map 和Reduce两部分。
Map负责“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。例如前面例子中的分配每个人数一层楼。
Reduce负责“合”,即对map阶段的结果进行全局汇总。例如前面例子中将五个人的结果汇总。
这两个阶段合起来正是MapReduce思想的体现。

MapReduce并行计算

HDFS存储数据时对大于128M的数据会进行数据切分,每128M一个数据块,数据块会分散、分布存储到HDFS。
MapReduce在进行计算前会复制计算程序,每个数据块会分配一个独立的计算程序副本(MapTack)。计算时多个数据块几乎同时被读取并计算,但是计算程序完全相同。最终将各个计算程序计算的结果进行汇总(Reduce来汇总)

Hadoop -MapReduce设计构思

MapReduce是一个分布式运算程序的编程框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在Hadoop集群上。
既然是做计算的框架,那么表现形式就是有个输入(input),MapReduce操作这个输入(input),通过本身定义好的计算模型,得到一个输出(output)。
Hadoop MapReduce构思体现在如下的三个方面:
如何应对大数据处理:分而治之
对相互间不具有计算依赖关系的大数据,实现并行最自然的办法就是采取分而治之的策略。并行计算的第一个重要问题是如何划分计算任务或者计算数据以便对划分的子任务或数据块同时进行计算。不可分拆的计算任务或相互间有依赖关系的数据无法进行并行计算!
构建抽象模型:Map和Reduce
MapReduce借鉴了函数式语言中的思想,用Map和Reduce两个函数提供了高层的并行编程抽象模型。
Map: 对一组数据元素进行某种重复式的处理;
Reduce: 对Map的中间结果进行某种进一步的结果整理。
MapReduce中定义了如下的Map和Reduce两个抽象的编程接口,由用户去编程实现:
map: [k1,v1] → [(k2,v2)]
reduce: [k2, {v2,…}] → [k3, v3]

WordCount体现每个KeyValue

Map和Reduce为程序员提供了一个清晰的操作接口抽象描述。通过以上两个编程接口,大家可以看出MapReduce处理的数据类型是<key,value>键值对。

统一构架,隐藏系统层细节
如何提供统一的计算框架,如果没有统一封装底层细节,那么程序员则需要考虑诸如数据存储、划分、分发、结果收集、错误恢复等诸多细节;为此,MapReduce设计并提供了统一的计算框架,为程序员隐藏了绝大多数系统层面的处理细节。
MapReduce最大的亮点在于通过抽象模型和计算框架把需要做什么(what need to do)与具体怎么做(how to do)分开了,为程序员提供一个抽象和高层的编程接口和框架。程序员仅需要关心其应用层的具体计算问题,仅需编写少量的处理应用本身计算问题的程序代码。如何具体完成这个并行计算任务所相关的诸多系统层细节被隐藏起来,交给计算框架去处理:从分布代码的执行,到大到数千小到单个节点集群的自动调度使用。

MapReduce(分布式计算框架)了解相关推荐

  1. MapReduce分布式计算框架

    1.MapReduce分布式计算框架 本章介绍了Hadoop的MapReduce分布式计算框架的基本概念.编程规范和词频统计实战等内容.从存储的大数据中快速抽取信息,进一步进行数据价值的挖掘,需要用到 ...

  2. MapReduce(分布式计算框架)

    什么是MapReduce MapReduce是分布式计算框架,它将大型数据操作作业分解为可以跨服务器集群并行执行的单个任务,适用于大规模数据处理场景,每个job包含Map和Reduce两部分 MapR ...

  3. MapReduce分布式计算框架简介

    Hadoopd分布式计算框架--MapReduce 一.MapReduce简介 1. 概念 MapReduce是基于Hadoop的分布式计算框架. 起源于Google,它将大型数据操作作业分解为可以跨 ...

  4. MapReduce分布式计算框架的优缺点

    MapReduce是一个可用于大规模数据处理的分布式计算框架,它借助函数式编程及分而治之的设计思想,使编程人员在即使不会分布式编程的情况下,也能够轻松地编写分布式应用程序并运行在分布式系统之上. 一. ...

  5. MapReduce 分布式计算框架 简介 特点 工作流程

    MapReduce 计算框架 一种分布式计算框架,解决海量数据的计算问题 MapReduce将整个并行计算过程抽象到两个函数 Map(映射):对一些独立元素组成的列表的每一个元素进行指定的操作,可以高 ...

  6. 【Hadoop】MapReduce——分布式计算框架

    文章目录 一.MapReduce设计理念 二.MpaReduce计算流程 1 原始数据File 2 数据块Block 3 切片Split 4 MapTask 5 环形数据缓冲区KvBuffer 6 分 ...

  7. Hadoop学习之MapReduce分布式计算框架

    目录 一.本地模式 1.新建一个本地maven项目 2.修改prom依赖(maven) 3.新建一个包mapreduce,在该包中新建三个包 4.写mapper组件 5.写Reducer组件 6.写D ...

  8. Hadoop大数据原理(3) - 分布式计算框架MapReduce

    文章目录 1. 大数据的通用计算 2 MapReduce编程模型 3. MapReduce计算框架 3.1 三类关键进程 大数据应用进程 JobTracker进程 TaskTracker进程 3.2 ...

  9. MapReduce基本概述——分布式计算框架

    目录 一.MapReduce的基本概念 二.MapReduce的设计思想 三.MapReduce特点 四.MapReduce编程规范 一.MapReduce的基本概念 MapReduce是一个分布式计 ...

最新文章

  1. php 加密cer_php 生成RSA非对称加密用的证书-cer-pfx文件
  2. Winform控件WebBrowser与JS脚本交互
  3. 关于django内置的ModelForm小记
  4. 数据库名、实例名和ORACLE_SID的区别
  5. docker安装部署和常用命令
  6. 程序员面试金典——3.6双栈排序
  7. Vue中 引入外部字体并使用
  8. 小米路由器4C从0到自编译以及刷固件
  9. 技术经理、架构师、技术总监、VP、CTO,这些岗位都是如何挣出来
  10. 掌握生成对抗网络(GANs),召唤专属二次元老婆(老公)不是梦
  11. 用Python分析周杰伦歌曲并进行数据可视化
  12. 本文为Mybatis面经,其中难点问题做了详细解释
  13. “我应为王”,比尔盖茨名言--author :邵京国
  14. scanf(%*s)
  15. 如何解决Mysql安装时卡在starting server的方法?(亲测有效)
  16. 幻读和不可重复读的区别
  17. 结对项目——电梯调度(final)
  18. MFC的COleDateTime类使用
  19. iOS平台epub阅读器推荐
  20. 神经网络图像识别技术,神经网络指纹识别

热门文章

  1. 夺命雷公狗---无限级分类NO6
  2. iqooneo5支持鸿蒙系统吗,标配鸿蒙系统、华为三大旗舰推4G版:或为避免P50芯片短缺...
  3. java正则表达式Patter和Matcher的使用
  4. 计算机科学导论XOR掩码,计算机科学导论模拟题2.doc
  5. 川大13秋《计算机应用基础0006》在线作业2,川大答案《计算机应用基础0006》考核作业1...
  6. Three.js 使用UV贴图制作地面
  7. Fomo3D 游戏的第一轮是如何结束的
  8. MySQL中的空值 Null 和空字符‘‘
  9. checkbox判断是否选中和设置选中状态
  10. 1080 Graduate Admission (30分)