`
weitao1026
  • 浏览: 1059944 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

Spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。Spark非常小巧玲珑,由加州伯克利大学AMP实验室的Matei为主的小团队所开发。使用的语言是Scala,项目的core部分的代码只有63个Scala文件,非常短小精悍。

Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

spark特点概括为“轻、快、灵和巧”。

轻:Spark 0.6核心代码有2万行,Hadoop 1.0为9万行,2.0为22万行。一方面,感谢Scala语言的简洁和丰富表达力;另一方面,Spark很好地利用了Hadoop和Mesos(伯克利 另一个进入孵化器的项目,主攻集群的动态资源管理)的基础设施。虽然很轻,但在容错设计上不打折扣。

快:Spark 对小数据集能达到亚秒级的延迟,这对于Hadoop MapReduce是无法想象的(由于“心跳”间隔机制,仅任务启动就有数秒的延迟)。就大数据集而言,对典型的迭代机器 学习、即席查询(ad-hoc query)、图计算等应用,Spark版本比基于MapReduce、Hive和Pregel的实现快上十倍到百倍。其中内存计算、数据本地性 (locality)和传输优化、调度优化等该居首功,也与设计伊始即秉持的轻量理念不无关系。

灵:Spark 提供了不同层面的灵活性。在实现层,它完美演绎了Scala trait动态混入(mixin)策略(如可更换的集群调度器、序列化库);在原语(Primitive)层,它允许扩展新的数据算子 (operator)、新的数据源(如HDFS之外支持DynamoDB)、新的language bindings(Java和Python);在范式(Paradigm)层,Spark支持内存计算、多迭代批量处理、即席查询、流处理和图计算等多种 范式。

巧: 巧在借势和借力。Spark借Hadoop之势,与Hadoop无缝结合;接着Shark(Spark上的数据仓库实现)借了Hive的势;图计算借 用Pregel和PowerGraph的API以及PowerGraph的点分割思想。一切的一切,都借助了Scala(被广泛誉为Java的未来取代 者)之势:Spark编程的Look'n'Feel就是原汁原味的Scala,无论是语法还是API。在实现上,又能灵巧借力。为支持交互式编 程,Spark只需对Scala的Shell小做修改(相比之下,微软为支持JavaScript Console对MapReduce交互式编程,不仅要跨越Java和JavaScript的思维屏障,在实现上还要大动干戈)。

Spark首先是一种粗粒度数据并行(data parallel)的计算范式。

数据并行跟任务并行(task parallel)的区别体现在以下两方面。(1)计算的主体是数据集合,而非个别数据。(2)集合内的所有数据都经过同样的算子序列。

Spark 的突破在于,在保证容错的前提下,用内存来承载工作集。内存的存取速度快于磁盘多个数量级,从而可以极大提升性能。关键是实现容错,传统上有两种方法:日 志和检查点。考虑到检查点有数据冗余和网络通信的开销,Spark采用日志数据更新。细粒度的日志更新并不便宜,而且前面讲过,Spark也不擅长。 Spark记录的是粗粒度的RDD更新,这样开销可以忽略不计。鉴于Spark的函数式语义和幂等特性,通过重放日志更新来容错,也不会有副作用。

分享到:
评论

相关推荐

    最近忙什么?--spark plugin

    1. **Spark Plugin基本概念**:解释什么是Spark Plugin,它的作用和目的,以及它如何与Spark生态系统相互作用。 2. **开发流程**:介绍从创建新项目、选择合适的构建工具,到编写和测试插件的完整步骤。 3. **源码...

    spark部署和基础代码的编写

    - **什么是Spark**:Spark是一个用于大规模数据处理的并行计算框架,它提供了一种基于内存计算的模型,显著提升了数据处理的速度。 - **为什么学Spark**:Spark的高性能、易于编程的特性使得它在大数据处理领域...

    JavaTokenizerExample_Spark!_java_spark_wearriy_

    首先,我们需要了解什么是Spark。Apache Spark是一个开源的大数据处理框架,它提供了快速、通用和可扩展的数据处理能力。Spark的核心是弹性分布式数据集(Resilient Distributed Datasets,简称RDD),这是一个可以...

    2.5.Spark集群环境搭建1

    什么是 Spark 集群环境? Spark 集群环境是指一组计算机节点,它们一起工作以处理大规模数据。Spark 集群环境可以大大提高数据处理的速度和效率。为了搭建 Spark 集群环境,我们需要至少两台虚拟机,一台作为 ...

    23章全大数据硬核技能进阶 Spark3实战智能物业运营系统

    1、什么是spark Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展...

    大数据技术之Spark.docx

    **1.1 什么是Spark** Spark是一种高性能、多功能且可扩展的大数据分析处理引擎。它最初由加州大学伯克利分校的AMPLab研发,于2009年问世,并在2010年开源。随着Spark社区的不断发展,它在2013年6月被接纳为Apache...

    spark基础内容

    - 什么是 Spark:Spark 是一个用于大规模数据处理的分布式计算框架,它支持批处理、交互式查询、流处理和机器学习等多种数据处理模式。 - 为什么要学 Spark:Spark 提供了比传统 MapReduce 更高的性能,且具有良好...

    spark安装包+spark实验安装软件

    Spark是Apache基金会下的一个开源大数据处理框架,以其高效、易用和可扩展性著称。Spark的核心设计理念是基于内存计算,极大地提升了数据处理速度。在本压缩包中,"spark-3.4.0-bin-without-hadoop"是Spark的一个预...

    大数据Spark纯净版安装包,用于快速集成Hive on Spark

    Spark纯净版安装包是一个用于安装Apache Spark的软件包,该软件包提供了Spark的基本功能和组件,但不包含任何额外的扩展或依赖项。纯净版安装包旨在提供一个轻量级、简单易用的Spark安装选项,适用于用户希望快速...

    Hadoop从业者为什么需要Spark?

    Hadoop从业者为什么需要Spark?答案是Hadoop已死,Spark称霸。 而Hadoop的死亡过程在2012年已经开始: 1,由于Hadoop自身架构的导致了在离线数据存储分析意外的一切领域都力不从心,理论已经证明MapReduce模型可以...

    spark-hive-2.11和spark-sql-以及spark-hadoop包另付下载地址

    在标题"spark-hive-2.11和spark-sql-以及spark-hadoop包另付下载地址"中,我们关注的是Spark与Hive的特定版本(2.11)的集成,以及Spark SQL和Spark对Hadoop的支持。这里的2.11可能指的是Scala的版本,因为Spark是用...

    spark相关jar包

    Spark是Apache软件基金会下的一个开源大数据处理框架,以其高效、灵活和可扩展的特性而闻名。Spark的核心设计是基于内存计算,它极大地提高了数据处理的速度,使得数据科学家和开发人员能够在处理大规模数据集时获得...

    springboot与spark整合开发, 练习spark api

    在现代大数据处理领域,Spark和Spring Boot的整合已经成为一种常见的技术组合。Spark作为一个快速、通用且可扩展的大数据处理框架,而Spring Boot则为构建微服务提供了简洁、高效的解决方案。本篇文章将深入探讨如何...

    SparkDemo.rar

    《Spark技术深度解析:从SparkCount到SparkSQL与SparkStreaming》 Spark,作为大数据处理领域的重要框架,以其高效、易用的特点受到了广泛的关注。在"SparkDemo.rar"这个压缩包中,包含了三个关键领域的示例:Spark...

    spark笔记整理文档

    《Spark技术深度解析》 Spark,作为大数据处理领域的重要框架,以其高效、易用和弹性伸缩等特性,被广泛应用于大规模数据处理、实时计算、机器学习和图形处理等多个场景。本篇笔记将深入探讨Spark的核心概念、架构...

    Spark官方中文文档

    Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点...

    spark0.2 和 spark0.5

    在本主题中,我们将深入探讨Spark的早期版本——Spark 0.2和Spark 0.5,这两个版本对Spark的发展起到了重要的奠基作用。 **Spark 0.2** Spark 0.2是Spark的第一个公开发布的版本,它标志着Spark项目正式进入公众...

    spark_jar包

    Spark_JAR包是Apache Spark项目的核心组件之一,它包含了运行Spark应用程序所必需的类库和依赖。Spark作为一个快速、通用且可扩展的数据处理框架,它为大数据处理提供了丰富的API,支持Scala、Java、Python和R等多种...

    spark全套视频教程

    《Spark全套视频教程》是一份全面讲解Apache Spark的教育资源,旨在帮助学习者深入理解和掌握这一强大的大数据处理框架。Spark以其高效、易用和多模态处理能力,在大数据领域备受推崇,广泛应用于数据处理、机器学习...

Global site tag (gtag.js) - Google Analytics