Hadoop系列--Hadoop核心之MapReduce的原理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33429968/article/details/77126807

1 MapReduce核心原理

  “分而治之,并行计算”是MapReduce的核心原理,其实也是大数据处理的中心思想。

1.1 分而治之

  在MapReduce中,分而治之,就是,
  

一个任务分成多个小的子任务(map),并行执行后,合并结果(reduce)。

1.2 并行计算

  在任务分配完之后,每个子任务平行执行,彼此之间是互不影响的,也就是并行计算,具体的子任务可以按照具体的标准进行。在每一个子任务都完成之后再按照统一的标准进行合并计算即可。

2 实例讲解

  下面以一个实际例子展开讲解,增强理解。

2.1 问题

  现在有若干张(数量足够多)杂乱无绪的、而且数目残缺不全的纸牌,一共有2~A共计14种纸牌(不计花色),需要统计出来每种纸牌各有多少(不计花色)。

2.2 问题解决步骤

  大体可分为以下步骤,如下图。
  理解
1.分牌--分配任务
  假设一共有1000张纸牌,现在将它们平均分配改5个人来统计处理。
  那么每个人处理200张纸牌。
2.各自统计--并行计算Map
  每个人将手中各种类型的纸牌的数量统计出来。
  例如:
  小红:(J,11) (Q,36) (K,3) … …
  小蓝:(J,36) (Q,2) (K,25) … …
  小绿:(J,1) (Q,3) (K,69) … …
  小黄:(J,96) (Q,14) (K,64) … …
  小青:(J,55) (Q,26) (K,88) … …
3.合并统计Reduce
  然后,汇总。
  每个人将各自统计的不同类型的纸牌的数量展示出来。
  然后再将相同类型的纸牌的数量加和即可。
  则如下:
  (J,11+36+1+96+55) -> (J,199)
  (Q,36+2+3+14+26) -> (Q,179)
  (K,3+25+69+64+88) ->(K,185)
4.筛选结果
  最终,所有的纸牌类型都按照这样的标准计算即可得出所有的结果。

3 构建抽象模型

  以上“分而治之,并行计算”的数据处理思想,是典型的流式大数据问题的特征。
  Map和Reduce为我们提供了一个清晰的操作接口。

4 统一框架

  
  MapReduce提供一个统一的计算框架,可完成:

  • —计算任务的划分和调度

  • 数据的分布存储和划分

  • —处理数据与计算任务的同步

  • 结果数据的收集整理(sorting, combining, partitioning,…)

  • —系统通信、负载平衡、计算性能优化处理

  • 处理系统节点出错检测和失效恢复

猜你喜欢

转载自blog.csdn.net/qq_33429968/article/details/77126807