MapReduce

MapReduce 是一个分布式运算程序的编程框架。

  • 任务拆分,并行运算
  • 最后把结果统一(Reduce 即 合)

​

即先分后合。

  1. 先切片,分发到不同的 map 任务,map 任务对数据做分区
  2. 相同的分区分发到同一个 Reduce 任务,合并结果输出

​

image.png

​

优点:

  1. 易编程。实现相关接口,就可以完成分布式程序。写法和串行程序一致。
  2. 易扩展。计算资源不够,可以简单的增加机器。
  3. 高容错。运行中的机器宕机,计算任务会被转移到另一个节点上运行。
  4. 适合 PB(1024TB)级海量数据的离线处理。

​

缺点:

  1. 不擅长实时计算。涉及落盘的IO操作
  2. 不擅长流式计算。
  1. 流式计算的输入数据是动态的,而 MapReduce 的输入数据是静态的,不能动态变化。
  2. MapReduce 自身设计决定了数据源必须是静态的,即稳定源文件。
  1. 不擅长 DAG(有向无环图)计算。
  1. 每个 MapReduce 的结果都会写入磁盘,造成大量 IO,造成性能下降。
本文由 java4u.cn 发布,可自由转载、引用,但需署名作者且注明文章出处(作者:白色蜗牛,出处:java4u.cn)。如转载至微信公众号,请在文末添加作者公众号二维码。 https://java4u.cn/backend/3549.html

作者: 蜗牛

MQ架构和迁移设计

下一篇
MapReduce

已经没有了

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

公众号:蜗牛互联网

在线咨询: QQ交谈

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部