MapReduce给用户提供了简单的编程接口,用户只需要按照接口编写串行版本的代码,Hadoop框架会自动把程序运行到很多机器组成的集群上,并能处理某些机器在运行过程中出现故障的情况。然而,在MapReduce程序运行过程中,中间结果会写入磁盘,而且很多应用需要多个MapReduce任务来完成,任务之间的数据也要通过磁盘来交换,没有充分利用机器的内存。为此,美国加州大学伯克利分校的 AMPLab 设计实现了 Spark 计算框架(Zaharia,et al. 2012),充分利用现在机器的大内存资源,使得大数据计算的性能得到了进一步的提升。Spark 由 Scala 语言编写,Scala 是一种基于Java虚拟机的函数式编程语言,因此 Spark 提供的操作和 MapReduce 相比更加丰富和灵活。

  Spark 设计的核心是一种叫做可靠分布式数据集(Resilient Distributed Dataset,RDD)的数据结构。一个 RDD 是一组数据项的集合,可以是普通的列表,也可以是由键值对构成的字典。在 Spark 中,一个 RDD 可以分布式的保存在多台机器上,也可以保存在磁盘上,也可以保存在内存中。对 RDD 的操作分为动作(action)和变换(transformation)。表 3.4 列出了 RDD 支持的常见操作。与 MapReduce 不同,Spark 的操作都是对 RDD 整体进行的,而不是对具体的每一个数据项。动作操作会直接生效,产生新的 RDD ,而变换操作的执行则是懒惰(lazy)的,操作会被记录下来,直到遇到下一个动作时才产生一个完整的执行计划。Spark 中的 RDD 可以由框架自动或由开发者人为地指定缓存在内存中,在内存足够的情况下对于某些应用可以获得比 MapReduce 快100倍以上的性能。

  Spark 可以独立运行,也可以在 Hadoop 系统上运行,由 YARN 来调度。Spark 支持对 HDFS 的读/写,因此 MapReduce 程序可以很容易地改写成 Spark 程序,并在相同的环境下运行。

  与 Hadoop 类似,Spark 也提供了一些组件,用于不同的应用场景。前面介绍的 Spark 核心组件被称为 Spark Core。Spark SQL 在 Spark Core 的基础上提供了新的数据抽象SchemaRDD,用于处理结构化和半结构化的数据,支持用SQL的语法对SchemaRDD进行查询。与Hive类似,Spark Streaming 提供了流式处理的功能,与Hadoop的Storm/S4类似。MLlib 是 Spark 上的机器学习算法库,提供了类似Mahout的功能。而GraphX则是 Spark的图计算框架,能够完成与Giraph相似的功能。

  总地来说,目前Spark已经发展到比较成熟的阶段,其核心功能涵盖了Hadoop的大部分内容,并且可以在Hadoop生态系统内使用,具有性能上的优势,正在获得越来越广泛的应用。

Spark 介绍的更多相关文章

  1. Spark 介绍(基于内存计算的大数据并行计算框架)

    Spark 介绍(基于内存计算的大数据并行计算框架)  Hadoop与Spark 行业广泛使用Hadoop来分析他们的数据集.原因是Hadoop框架基于一个简单的编程模型(MapReduce),它支持 ...

  2. Spark介绍及安装部署

    一.Spark介绍 1.1 Apache Spark Apache Spark是一个围绕速度.易用性和复杂分析构建的大数据处理框架(没有数据存储).最初在2009年由加州大学伯克利分校的AMPLab开 ...

  3. Spark记录-spark介绍

    Apache Spark是一个集群计算设计的快速计算.它是建立在Hadoop MapReduce之上,它扩展了 MapReduce 模式,有效地使用更多类型的计算,其中包括交互式查询和流处理.这是一个 ...

  4. 大数据系列之并行计算引擎Spark介绍

    相关博文:大数据系列之并行计算引擎Spark部署及应用 Spark: Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎. Spark是UC Berkeley AMP lab ( ...

  5. spark介绍

    什么是Spark Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hado ...

  6. Apache Spark介绍及集群搭建

    简介 Spark是一个针对于大规模数据处理的统一分析引擎.其处理速度比MapReduce快很多.其特征有: 1.速度快 spark比mapreduce在内存中快100x,比mapreduce在磁盘中快 ...

  7. spark介绍4(sparksql)ODBC(Windows)gc

    (ODBC是open database connection开源数据连接)  在Windows控制面板的管理工具里面 GC(Garbage Collection):JAVA/.NET中的垃圾回收器 l ...

  8. spark介绍3

  9. spark介绍2

    上述结果是 map 1 filter 1 map 2 filter 2 map 3 filter 3 map 4 filter 4 即说明是并行,且互不干扰,每个task运行到最后

随机推荐

  1. python词频统计及其效能分析

    1) 博客开头给出自己的基本信息,格式建议如下: 学号2017****7128 姓名:肖文秀 词频统计及其效能分析仓库:https://gitee.com/aichenxi/word_frequenc ...

  2. Putty6.0 提示Access denied

    1.如果putty能正常使用,解决方法很简单: 只要在Putty的configuration里面Connection->SSH->Auth->GSSAPI的配置中,去掉默认的Atte ...

  3. JVM总括二-垃圾回收:GC Roots、回收算法、回收器

    JVM总括二-垃圾回收:GC Roots.回收算法.回收器 目录:JVM总括:目录 一.判断对象是否存活 为了判断对象是否存活引入GC Roots,如果一个对象与GC Roots没有直接或间接的引用关 ...

  4. c#devexpress 窗体控件dock的重要

    在设计c# devexpress winform 窗体时, 要建立起dock意识, dock就是子窗体如何靠在父窗体上, 有fill 全覆盖, buttom 底部,top 上部... 如下图 pane ...

  5. MongoDB及Mongoose的记录

    MongoDB是一种NoSQL的文档型数据库,其存储的文档类型都是JSON对象. 在node.js中由于代码都是异步执行,且nosql也没有“事物”这一定义,所以日常使用中很难保证数据库操作的原子性. ...

  6. Lonsdor K518ISE SCION 2011-2018 Models Enabled!

    Lonsdor released the Lonsdor K518ISE Key Programmer update announcement on 14-03-2019, saying it can ...

  7. 【Java】基本数据类型

    基本知识点给个链接: https://blog.csdn.net/qwe969153746/article/details/53353534 问题: 1.3*0.1 == 0.3 返回什么: fals ...

  8. angular点击查看更多(简单demo)

    今天来跟大家分享一个小的demo,一般网页浏览到底部的时候会有一个点击加载更多的按钮,之前一直纠结怎么写这个,今天学习angular时发现可以用组件来实现这么一个小的效果,大家有兴趣的话可以看一下. ...

  9. Java:ConcurrentHashMap的锁分段技术

    术语定义 术语 英文 解释 哈希算法 hash algorithm 是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值.  哈希表 hash table 根据设定的哈希函数H(ke ...

  10. win10 64位 安装scrapy

    在学习python时,不可避免下载了Anaconda,当我打算写爬虫时,urllib,requests,selenium,pyspider都已经安装好了,可以直接使用了,但是有一天我想要使用scrap ...