Spark相对于MapReduce的优势

MapReduce存在的问题

1. MapReduce框架局限性

  1)仅支持Map和Reduce两种操作

  2)处理效率低效。

    a)Map中间结果写磁盘,Reduce写HDFS,多个MR之间通过HDFS交换数据; 任务调度和启动开销大;

    b)无法充分利用内存

    c)Map端和Reduce端均需要排序

  3)不适合迭代计算(如机器学习、图计算等),交互式处理(数据挖掘) 和流式处理(点击日志分析)

2. MapReduce编程不够灵活

  1)尝试scala函数式编程语言

Spark

1. 高效(比MapReduce快10~100倍)

  1)内存计算引擎,提供Cache机制来支持需要反复迭代计算或者多次数据共享,减少数据读取的IO开销

  2)DAG引擎,减少多次计算之间中间结果写到HDFS的开销

  3)使用多线程池模型来减少task启动开稍,shuffle过程中避免 不必要的sort操作以及减少磁盘IO操作

2. 易用

  1)提供了丰富的API,支持Java,Scala,Python和R四种语言

  2)代码量比MapReduce少2~5倍

3. 与Hadoop集成 读写HDFS/Hbase 与YARN集成

时间: 2024-10-08 14:20:20

Spark相对于MapReduce的优势的相关文章

Spark与Hadoop MapReduce的对比分析

Spark与Hadoop MapReduce均为开源集群计算系统,但是两者适用的场景并不相同.其中,Spark基于内存计算实现,可以以内存速度进行计算,优化工作负载迭代过程,加快数据分析处理速度:Hadoop MapReduce以批处理方式处理数据,每次启动任务后,需要等待较长时间才能获得结果.在机器学习和数据库查询等数据计算过程中,Spark的处理素的可以达到Hadoop MapReduce 的100倍以上.因此,对于实时要求较高的计算处理应用,Spark更加适用:对于海量数据分析的非实时计算

springMVC 相对于 Structs 的优势

智者说,没有经过自己的思考和估量,就不能接受别人的东西.资料只能是一个参考,至于是否正确,还得自己去分辨 SpringMVC相对于Structs的几个优势: 1.springMVC安全性更高,structs2框架是类级别的拦截,每次request请求structs2都会为之创建一个action,然后将数据注入到实体been中,所以在structs2中,一个action对应一个request上下文.springMVC是方法级别的拦截,每个request对应一个方法,然后通过注解将数据注入到对应的实

大数据Storm相比于Spark、Hadoop有哪些优势(摘录)

一.可能很多初学大数据的伙伴不知道strom是什么,先给大家介绍一下strom:分布式实时计算系统,storm对于实时计算的意义类似于hadoop对于批处理的意义.storm的适用场景.流数据处理.Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去.分布式rpc.由于storm的处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式rpc框架来使用.当然,其实我们的搜索引擎本身也是一个分布式rpc系统有一句话叫做三人行必有我师,其实做为一个开发者,有一个学习

Spark和Hadoop MapReduce之间的比较

关于两者的讨论文章: https://www.zhihu.com/question/26568496 http://blog.jobbole.com/97150/ 文章通过多个角度对两者进行对比,根据目前的使用情况,Spark更适用于我们的大数据平台进行大数据运算. 公司的Spark集群资源正在搭建,后续进行申请,暂时在沙盒机器上搭建使用.

epoll 相对于select的优势

这个问题至今才去查,是因为我需要用的地方真的不是很多,学习了那么多年,不知道自己究竟学了什么,觉得自己的优势就是针对特定知识点都熟悉点,一整套的软件架构没有搞过. 再总结一点select的不足点: epoll比select牛逼的地方 支持一个进程打开大数目的socket描述符 select 最不能忍受的是一个进程所打开的FD是有一定限制的,由FD_SETSIZE设置,默认值是1024.对于那些需要支持的上万连接数目的IM服务器来说显然太少了.这时候你一是可以选择修改这个宏然后重新编译内核,不过资

spark初识

随笔说明:由于参加了上海交大组织的飞谷云项目,而且报名第三组:基于Spark的机器学习.于是打算先花时间把Spark的基础学习学习.这次学习的参考书选择的是Spark的官方文档(这个肯定是最权威的)和机械工业的<Spark大数据处理   技术.应用与性能优化>:届时肯定还有项目组提供的学习资料. 1.Spark简介 1.1概念 Spark是基于内存计算的大数据并行计算框架.它基于内存计算,提高了实时性,保证了高容错性和高可伸缩性,允许用户将它部署在大量廉价硬件之上,形成集群. Spark之于H

spark 运维实战 简介

 Spark 大数据计算框架.架构.计算模型和数据管理策略及 Spark 在工业界的应用.围绕 Spark 的 BDAS 项目及其子项目进行了简要介绍.目前,Spark 生态系统已经发展成为一个包含多个子项目的集合,其中包含 SparkSQL.Spark Streaming.GraphX. MLlib 等子项目,本章只进行简要介绍,后续章节再详细阐述. 1.1 Spark 是什么 Spark 是基于内存计算的大数据并行计算框架.Spark 基于内存计算,提高了在大数据环境下数据处理的实时性,同时

Spark详解

? Spark概述 当前,MapReduce编程模型已经成为主流的分布式编程模型,它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上.但是MapReduce也存在一些缺陷,如高延迟.不支持DAG模型.Map与Reduce的中间数据落地等.因此在近两年,社区出现了优化改进MapReduce的项目,如交互查询引擎Impala.支持DAG的TEZ.支持内存计算Spark等.Spark是UC Berkeley AMP lab开源的通用并行计算框架,以其先进的设计理念,已经

spark和hive storm mapreduce的比较

Spark Streaming与Storm都可以用于进行实时流计算.但是他们两者的区别是非常大的.其中区别之一就是,Spank Streaming和Stom的计算模型完全不一样,Spark Streaming是基于RDD的,因此需要将一小段时间内的,比如1秒内的数据,收集起来,作为一个RDD.然后再针对这个batch的数据进行处理.而Storm却可以做到每来一条数据, 都可以立即进行处理和计算. 因此,Spark Streaming实际上严格意义上来说,只能称作准实时的流计算框架,而Storm是