01 MapReduce的基本概念

 

 

 

  • 什么是Mapreduce ? 分布式计算框架,是hadoop的一部分。

  • 核心的思想: 分而治之

  • 什么是分而治之

    • 将一个复杂的大的问题,拆分成多个简单的小问题,将每个小的问题进行分别的计算处理操作,得到一个局部的结果之后,再进行合并操作最终得到一个结果。

  • 比如说:需求 从1 + 2 + 3 + 4 .... + 10000 如何计算呢?

    • 单机程序: 每个数字的累加计算。

    • 分布式,分而治之思想:

      • 先找十个人,10个计算器,来进行计算操作

      • 第一个人拿走:1 + 2 + ... + 1000

      • 第二个人拿走:1001 + 1002 + ... + 2000

      • 依此类推 ....

      • 第十个人拿走: 9000 + 9001 +... + 10000

      • 最终,将这十个计算器计算的结果进行累加操作,得到最终的结果。

  • 不能有依赖需求,比如说:生活当中要求5000个同学,想计算全区5000的同学的平均分

    • 单机程序:把每个同学的成绩加起来,然后除以 5000

    • 分而治之思想:

      • 第一个人拿走:前300个同学的成绩 进行求平均分 ,等到平均分(70+80+90...+92.5)/300 = 80.5

      • 第二个人拿走:300-2000个同学成绩,等到(70+85+90...+95)/1701= 69

      • 第三个人拿走:2000-5000个同学成绩,等到(73+81+94...+92)/3000= 74.5

      • 最终合并局部结果: (80.5+69+74.5)/3 是真正的平均值吗 ? 肯定不是...

    • 分而治之,任务之间不能有依赖。

  • 这个 MapReduce 分为两个部分:

    • Map负责“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。

    • Reduce负责“合”,即对map阶段的结果进行全局汇总。

  • MapReduce 的设计构思:

    • 如何对付大数据处理:分而治之一个Mapreduce 的 程序,其实就是一个计算的任务,MapReduce是计算框架,必然会有数据的输入和数据的输出

    • 构建抽象模型:Map和Reduce

    • 统一构架,隐藏系统层细节,只需要关心,需要计算什么内容,如何进行业务逻辑的拆分,如何计算,逻辑是什么,至于底层如何拆解成多个map 和 多个 reduce,如何进行资源的申请,如何进行任务的分配等,都是隐藏的。

  • MapReduce核心功能:

    • 将用户编写的业务逻辑代码和MapReduce本身自带的组件整合到一个完整的分布式计算程序。

 

 

将用户编写的业务逻辑代码和MapReduce本身自带的组件整合到一个完整的分布式计算程序。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值