MapReduce优缺点

一、优点

1)MapReduce 易于编程
它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉价的机器上运行。也就是说你写一个分布式程序,跟写一个简单的串行程序是一模一样的。就是因为这个特点使得MapReduce编程变得非常流行。
2)良好的扩展性
当你的计算资源不能得到满足的时候,你可以通过简单的增加机器来扩展它的计算能力。
3)高容错性
MapReduce设计的初衷就是使程序能够部署在廉价的机器上,这就要求它具有很高的容错性。比如其中一台机器挂了,它可以把上面的计算任务转移到另外一个节点上运行,不至于这个任务运行失败,而且这个过程不需要人工参与,而完全是由Hadoop内部完成的。
4)适合PB级以上海量数据的离线处理
可以实现上千台服务器集群并发工作,提供数据处理能力。

二、缺点

1)不擅长实时计算
MapReduce无法像MySQL一样,在毫秒或者秒级内返回结果。
2)不擅长流式计算
流式计算的输入数据是动态的,而MapReduce的输入数据集是静态的,不能动态变化。这是因为MapReduce自身的设计特点决定了数据源必须是静态的。
3)不擅长DAG(有向图)计算
多个应用程序存在依赖关系,后一个应用程序的输入为前一个的输出。在这种情况下,MapReduce并不是不能做,而是使用后,每个MapReduce作业的输出结果都会写入到磁盘,会造成大量的磁盘IO,导致性能非常的低下。

三、总结

MapReduce虽然有诸多缺点,但它确实分布式计算的鼻祖,后期流行的离线数仓Hive底层也是基于MapReduce程序,实时计算框架Spark、Flink也或多或少借鉴了MapReduce的设计原理,只不过对中间计算结果在数据存储方面做出了改进。

MapReduce优缺点相关推荐

  1. MapReduce骚气分析

    MapReduce分析 一. MapReduce定义 二.MapReduce优缺点 三.MapReduce工作原理 一.MapReduce定义 MapReduce是一个并行计算与运行软件框架(Soft ...

  2. MapReduce 概述

    1. MapReduce 定义 MapReduce 是一个分布式运算程序的编程框架,是用户开发"基于Hadoop的数据分析应用"的核心框架. MapReduce 核心功能是将用户编 ...

  3. mapreduce value 排序_MapReduce知识点一

    MapReduce 优缺点 MapReduce 分布式运算程序的编程框架优点:使分布式编程变得简单,高容错性,适合PB级以上的数据处理缺点: 不适合实时计算 MapReduce流程 客户端submit ...

  4. Hadoop之MapReduce入门

    Hadoop之MapReduce概述 目录 MapReduce定义 MapReduce优缺点 MapReduce核心思想 MapReduce进程 MapReduce编程规范 MapReduce案例实操 ...

  5. MapReduce案例

    大数据技术之Hadoop(Map-Reduce) 一 MapReduce入门 1.1 MapReduce定义 Mapreduce是一个分布式运算程序的编程框架,是用户开发"基于hadoop的 ...

  6. Hadoop——MapReduce(3)

    MapReduce:自己处理业务相关代码 + 自身的默认代码 文章目录 1.MapReduce优缺点 2.MapReduce进程 3.序列化 4 InputFormat数据输入 4.1 切片与MapT ...

  7. Hadoop生态之Mapreduce

    今天给大家带来的是Hadoop生态中的Mapreduce,看到这里诸佬们可能就有疑惑了呢,啥是Mapreduce?小小的脑袋大大的疑惑. 在上篇博客中博主使用了王者来举例子,如果把Hadoop当作王者 ...

  8. MapReduce入门(一)—— MapReduce概述 + WordCount案例实操

    MapReduce入门(一)-- MapReduce概述 文章目录 MapReduce入门(一)-- MapReduce概述 1.1 MapReduce 定义 1.2 MapReduce 优缺点 1. ...

  9. hadoop之MapReduce学习教程

    hadoop之MapReduce学习 MapReduce概述 MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发"基于Hadoop的数据分析应用" ...

  10. hadoop之mapreduce教程+案例学习(一)

    第1章 MapReduce概述 目录 第1章 MapReduce概述 1.1 MapReduce定义 MapReduce是一个分布式运算程序的编程框架,是用户开发"基于Hadoop的数据分析 ...

最新文章

  1. 科研成果汇总:收获的季节
  2. Openstack_单元测试
  3. 1.17 选择排序法
  4. Linux Perl 升级
  5. 工作198:无法选中的状态一定要绑定在select上面
  6. 基于matlab 的燃油喷雾图像处理方法,基于MATLAB的燃油喷雾图像处理方法.doc
  7. 组建实验室仅3年,团队人均26岁,这位85后女博导成果登上Nature!
  8. Unity3D调用摄像头显示当前拍摄画面
  9. Word2Vec学习笔记(一)
  10. 数据结构之图的应用:拓扑排序
  11. Flutter GetX 状态管理 使用入门 程序计数器 (二)
  12. linux需要多少空间安装mysql_如何安装MySQL
  13. 在Word 2007中轻松插入或创建表格
  14. ERROR:The requested URL could not be retrieved解决方法
  15. Sueetie源代码发布【 推荐 】
  16. matlab 无法终止,Matlab使用xlsread, xlswrite函数导致excel进程无法终止的问题
  17. 三维空间坐标系变换——旋转矩阵
  18. 把汇总报表页面生成 pdf文件方案!
  19. Magento(CE1.X)自带模块解析七
  20. 【答读者问5】如何实现以当天收盘价交易?

热门文章

  1. python 使用公司邮箱发邮件_python3使用腾讯企业邮箱发送邮件的实例
  2. java报错symbol_java 报错cannot resolve symbol问题
  3. 网站中qq 跳转 和qq群问题
  4. EasyBoot制作中文启动菜单教程
  5. Import “github.com/gogo/protobuf/gogoproto/gogo.proto“ was not found or had errors.
  6. 陈敏 Java课设实验报告
  7. delphi编程实现免杀捆绑
  8. ubuntu 装机必备软件
  9. Flickr网站架构分析
  10. APP游戏运营:如何运用数据来指导手游运营