spark是通过借鉴Hadoop mapreduce发展而来,继承了其分布式并行计算的优点,并改进了mapreduce明显的缺陷,具体表现在以下几方面:

  1.spark把中间计算结果存放在内存中,减少迭代过程中的数据落地,能够实现数据高效共享,迭代运算效率高。mapreduce中的计算中间结果是保存在磁盘上的,这样必然影响整体运行速度。

    2.spark容错性高。spark支持DAG图的分布式并行计算(简单介绍以下spark DAG:即有向无环图,描述了任务间的先后依赖关系,spark中rdd经过若干次transform操作,由于transform操作是lazy的,因此,当rdd进行action操作时,rdd间的转换关系也会被提交上去,得到rdd内部的依赖关系,进而根据依赖,划分出不同的stage。),它引进rdd弹性分布式数据集的概念,它是分布在一组节点中的只读对象集合,如果数据集一部分数据丢失,则可以根据血统来对它们进行重建;另外在RDD计算时可以通过checkpoint来实现容错,checkpoint有两种方式,即checkpiont data 和logging the updates。

  3.spark更加通用。hadoop只提供了map和reduce两种操作,spark提供的操作类型有很多,大致分为转换和行动操作两大类。转换操作包括:map,filter,flatmap,sample,groupbykey,reducebykey,union,join,cogroup,mapvalues,sort,partitionby等多种操作,行动操作包括:collect,reduce,lookup和save等操作

这里要注意:spark 操作实际分为四类:

  a.创建操作:用于创建RDD。RDD创建只有两种方法,一种是读取外部文件和内存集合,另一种是通过transform转换操作生成。

  b.转换操作:将RDD通过一定的操作转换成新的RDD。RDD的转换操作是惰性操作,它只是定义了一个新的RDD,并没有立即执行。

  c.控制操作:进行RDD持久化,科技将RDD按不同的存储策略保存在磁盘或内存中,比如cache接口默认将RDD缓存在内存中。

  d.行动操作:能够触发spark运行的操作,举个栗子,对RDD进行COLLECT就是行动操作。spark中的行动操作分为两类,一类的操作结果是变成scala集合或变量,另一类是将RDD保存到外部文件系统或数据库中。

spark与mapreduce的区别的更多相关文章

  1. spark和mapreduce的区别

    spark和mapreduced 的区别map的时候处理的时候要落地磁盘 每一步都会落地磁盘 reduced端去拉去的话 基于磁盘的迭代spark是直接再内存中进行处理 dag 执行引擎是一个job的 ...

  2. Spark 与 MapReduce的区别

    学习参考自 http://spark-internals.books.yourtion.com/markdown/4-shuffleDetails.html 1.  Shuffle read 边 fe ...

  3. spark与Hadoop的区别

    1. Mapreduce和Spark的相同和区别 两者都是用mr模型来进行并行计算 hadoop的一个作业:job job分为map task和reduce task,每个task都是在自己的进程中运 ...

  4. GraphLab GraphLab和MapReduce的区别

    https://turi.com/ GraphLab和MapReduce的区别 https://baike.baidu.com/item/GraphLab/16423125 2. GraphLab和M ...

  5. Alluxio增强Spark和MapReduce存储能力

    Alluxio的前身为Tachyon.Alluxio是一个基于内存的分布式文件系统:Alluxio以内存为中心设计,他处在诸如Amazon S3. Apache HDFS 或 OpenStack Sw ...

  6. Spark 颠覆 MapReduce 保持的排序记录

    在过去几年,Apache Spark的採用以惊人的速度添加着,通常被作为MapReduce后继,能够支撑数千节点规模的集群部署. 在内存中数 据处理上,Apache Spark比MapReduce更加 ...

  7. 详解MapReduce(Spark和MapReduce对比铺垫篇)

    本来笔者是不打算写MapReduce的,但是考虑到目前很多公司还都在用这个计算引擎,以及后续要讲的Hive原生支持的计算引擎也是MapReduce,并且为Spark和MapReduce的对比做铺垫,笔 ...

  8. 重要 | Spark和MapReduce的对比,不仅仅是计算模型?

    [前言:笔者将分上下篇文章进行阐述Spark和MapReduce的对比,首篇侧重于"宏观"上的对比,更多的是笔者总结的针对"相对于MapReduce我们为什么选择Spar ...

  9. spark VS mapreduce

    Apache Spark,一个内存数据处理的框架,现在是一个顶级Apache项目. 这是Spark迈向稳定的重要一步,因为它越来越多地在下一代大数据应用中取代MapReduce. MapReduce是 ...

随机推荐

  1. OV SSL证书有哪些功能?网站安装OV SSL证书的好处

    OV SSL证书英文名称为Organization Validation SSL Certificate,申请OV SSL证书需要审核申请者对域名是否拥有控制权,同时审核申请者是否为一个合法登记.真实 ...

  2. luogu1220_关路灯 区间dp

    传送门 区间dp f[i][j][state] : [i, j]区间 state=0 当前选i state = 1 当前选j 注意枚举的顺序 转移的设计时 在同时刻不在[i,j]区间里的数也要考虑 不 ...

  3. android ——Intent

    Intent是android程序中各组件之间进行交互的重要方式,它可以用于指明当前组件想要执行的动作,也可以在不同组件之间传递数据,Intent一般被用于启动活动,启动服务以及发送广播. 一.显式的使 ...

  4. RocketMQ中PullConsumer的启动源码分析

    通过DefaultMQPullConsumer作为默认实现,这里的启动过程和Producer很相似,但相比复杂一些 [RocketMQ中Producer的启动源码分析] DefaultMQPullCo ...

  5. exe4j打包--jar打包exe

    本文重点介绍如何将我们写的java代码打包成在电脑上可以运行的exe文件.这里只介绍直接打包成exe的方法,至于打包成exe安装包下节介绍 test 软件准备 exe4j集合包下载地址(下节内容也在这 ...

  6. 算法之《图》Java实现

    数据结构之图 定义(百度百科) 图的术语表 无向图 深度优先搜索 广度优先遍历 有向图 路径问题 调度问题 强连通性 最小生成树(无向图) 最小生成树的贪心算法 加权无向图的数据结构 Kruskal算 ...

  7. mysql主从不同步处理过程分享

    背景  8月7日15:58收到报障数据库出现不同步:数据库共四台,分别为10.255.70.11,10.255.70.12,10.255.70.13,10.255.70.14(ip为虚拟ip) 数据库 ...

  8. 【java提高】(18)---静态内部类和非静态内部类

    java提高](18)-静态内部类和非静态内部类 定义 放在一个类的内部的类我们就叫内部类. 自己从开发到现在其实用到内部类主要在两个地方会考虑用内部类: 1.使用静态内部类的单例模式 2.将Json ...

  9. Xcodebuild命令使用

    Xcodebuild简介 Xcodebuild是命令行工具包的其中一项. 命令行工具包(Command Line Tools)是一个轻量的.可以与XCode分开的.在Mac上单独下载的命令行工具包. ...

  10. 关于c++中的复合类型

    目录 数组 字符串 结构体 共用体 枚举 指针 数和指针的关系 常见的存储方式 数组替代品 一.数组 存储在每个元素中值的类型 数组名 数组中的元素数 通用格式:typename arrayname ...