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. 纯css3单选框/复选框美化样式代码

    纯CSS 单/复选框 美化请选择iPhone 型号 iPhone 6s iPhone 6s Plus iPhone 7 iPhone 7 Plus   选择兴趣爱好 女 绘画 摄影 骑行   原理在这 ...

  2. docker 删除所有退出的容器

    方法一: #显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID, sudo docker ps -a|grep Exited|awk '{print $1}' #查询所有的容器,过滤出E ...

  3. VNC 分辨率修改

    正确的: vncserver -geometry 1280x1024 错误的: vncserver -geometry 1280*1024

  4. 面试简单整理之zookeeper

    157.zookeeper 是什么? ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现. 分布式应用程序可以基于 ZooKeeper 实现诸如数据 ...

  5. CentOS6系统编译部署LAMP(Linux, Apache, MySQL, PHP)环境

    我们一般常规的在Linux服务器中配置WEB系统会用到哪种WEB引擎呢?Apache还是比较常用的引擎之一.所以,我们在服务器中配置LAMP(Linux, Apache, MySQL, PHP)是我们 ...

  6. 摹客iDoc的PS插件全新改版!—— 智能检测不对应的设计稿

    一.简洁美观——iDoc的PS插件全新界面 iDoc对PS插件的界面进行了全新设计,无论是登录.上传.还是设置界面,都变得更精致.简洁美观,功能分布也非常明确,是一款轻巧且实用的小插件. 二.同步上传 ...

  7. 4-1 requests库的安装

    1.  一切安装从简就行了直接打开cmd命令窗口输入 pip install requests  把复杂的问题简单化,我这个已经安装好了.会提示已经安装. 2.打开cmd 输入python 这个会提示 ...

  8. Unity - Photon PUN 本地与网络同步的逻辑分离 (一)

    服务器大家可以使用Photon官网提供的,这样会变得很简单,直接搭建下就好.或者下载到本地开启本地端Photon服务器 (大家也可以使用和我一样方式有时间做了个winform 程序用来管理本地服务器开 ...

  9. 微信小程序开发之搞懂flex布局3——Flex Item

    Flex Item flex容器的子元素就是这个容器的flex item. The direct children of a Flex Container (elements with display ...

  10. clion中配置glfw和glew

    clion中只能用cmake文件配置 最开始不清楚cmake语法走了不少弯路 如果遇到symbol(s) not found for architecture x86_64错误,百分百是cmake没配 ...