【Hadoop学习之MapReduce】_13MR的优缺点

一、MapReduce的核心功能

  1. MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架。
  2. MapReduce核心功能是将用户编写的业务逻辑代码自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上。

二、MapReduce的优点

  1. 易于编程

    它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的PC机器上运行,也就是说你写一个分布式程序,跟写一个简单的串行程序是一摸一样的,就是因为这个特点使得MapReduce编程百年的非常流行。

  2. 良好的扩展性

    当你的计算资源不能得到满足的时候,你可以通过简单的增加机器来扩展他的计算能力。

  3. 高容错性

    当集群中的一台机器挂掉,它可以把上面的计算任务转移到另外一个节点上运行,不至于这个任务运行失败,而且这个过程不需要人工参与,完全由Hadoop内部完成

  4. 适合PB级以上海量数据的离线处理

    可以实现上千台服务器集群并发工作,提供数据处理能力。

三、MapReduce的缺点

  1. 不擅长实时计算

    MapReduce无法像MySQL一样,在毫秒或者秒级内返回结果。

  2. 不擅长流式计算

    流式计算的输入数据是动态的,而**MapReduce的输入数据集是静态的**,不能动态变化,这是因为MapReduce自身的设计特点决定了数据元必须是静态的。

  3. 不擅长DAG(有向图)计算

    当多个应用程序存在依赖关系,后一个应用程序的输入为前一个的输出,在这种情况下,MapReduce可以实现,但是每个MapReduce的输出结果都会写入到磁盘,造成大量的磁盘IO,导致性能非常的低下

发布了30 篇原创文章 · 获赞 30 · 访问量 770

猜你喜欢

转载自blog.csdn.net/qq_40947493/article/details/104194844