千家信息网

1.spark简介

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,spark是一个用于大规模数据处理的统一计算引擎。适用于各种各样原先需要多种不同的分布式平台处理的场景,包括批处理、迭代计算、交互式查询、流处理。通过统一的框架将各种处理流程整合到一起。spark特性
千家信息网最后更新 2025年12月03日1.spark简介

spark是一个用于大规模数据处理的统一计算引擎。适用于各种各样原先需要多种不同的分布式平台处理的场景,包括批处理、迭代计算、交互式查询、流处理。通过统一的框架将各种处理流程整合到一起。

spark特性

  • 快速性

spark通过使用先进的DAG调度器、查询优化器和物理执行引擎,可以高性能地进行批量及流式处理。使用逻辑回归算法进行迭代计算,spark比hadoop速度快100多倍。

  • 简单易用

spark支持多种编程语言,比如Java、Scala、Python、R及SQL。

spark提供了超过80多个高级算子操作,可以很便捷地构建并行计算应用。

  • 通用性

spark构建了一个完善的生态栈,将批量计算、交互式计算、流式计算、机器学习及图计算整合到一个统一的框架体系中。

  • 处处运行

spark可以运行在standalone、YARN、Mesos、Kubernetes及EC2多种调度平台上。

另外,spark可以接入多种数据源,比如HDFS、Alluxio、HBase、Cassandra、Hive及本地文件。

spark生态栈

Spark Core

Spark Core实现了Spark的基本功能,包括任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core还包含了对弹性分布式数据集(resilient distributed dataset,简称RDD)的API定义。RDD表示分布在多个计算节点上并行操作的元素集合,是Spark的核心抽象模型。

Spark SQL

Spark SQL是Spark用来处理结构化数据的子框架。Spark SQL支持多种数据源,比如Hive表、Parquet及JSON等。Spark SQL可使用SQL或Hive的SQL方言(HQL)查询数据,还支持将SQL和RDD相互转换。

Spark Streaming

Spark Streaming是Spark提供的对实时数据进行流式计算的组件。Spark Streaming提供了操作数据流的API,同时还提供了高级别的容错性、吞吐量及可伸缩性。

MLlib

MLlib是一个提供常见机器学习(ML)功能的程序库。MLlib提供了很多种机器学习算法,包括分类、回归、聚类、协同过滤等,还提供了模型评估、数据导入及更底层的机器学习原语(包括通用的梯度下降优化算法)。

Graphx

Graphx是用来操作图(比如社交网络的朋友关系图)的程序库,可进行并行的图计算。Graphx扩展了RDD API,能用来创建一个顶点和边都包含任意属性的有向图。Graphx支持对图的各种操作(比如进行图分隔的subgraph和操作所有顶点的mapVertices),及一些常用算法(比如PageRank和三角计数)。

集群管理器

Spark设计为可高效地在一个计算节点到数千个计算节点之间伸缩计算,所以为了获取最大灵活性,spark支持在各种集群管理器上运行,包括Hadoop YARN、Apache Mesos及Spark自带的独立调度器等。

spark用户及用途

spark的使用者主要分为两大目标人群:数据分析师和工程师。这两大人群使用spark的典型用例不一致,大致分为两类:数据分析和数据处理。

数据分析

数据分析师就是主要负责分析数据并建模的人。他们具备SQL、统计、预测建模(机器学习)等方面技能,有一定使用Python、Matlab或R编程的能力。

Spark通过一系列组件支持数据分析任务。Spark shell提供python和scala接口来进行交互式数据分析。Spark SQL提供独立的SQL shell来使用SQL探索数据,也可以通过标准的Spark程序或Spark shell进行SQL查询。MLlib程序库进行机器学习和数据分析。Spark还支持调用R或Matlab外部程序。

数据处理

工程师就是使用Spark开发数据处理应用的软件开发者。他们具备软件工程概念(封装、接口设计及面向对象思想),能使用工程技术设计软件系统。

Spark为开发用于集群并行执行的程序提供了捷径。不需要开发者关注分布式问题、网络通信及程序容错性。为工程师提供足够的接口实现常见的任务及对应用监控、审查和性能调优。

spark简史

  • 2009 ,Spark诞生于UCBerkeley的AMP实验室

  • 2010 ,Spark正式对外开源

  • 2012-10-15,Spark 0.6.0发布。

  • 大范围的性能改进,增加了一些新特性,并对Standalone部署模式进行了简化

  • 2013-02-27,Spark 0.7.0发布

  • 增加了更多关键特性,例如:Python API、Spark Streaming的alpha版本等

  • 2013-06-21,Spark接受进入Apache孵化器

  • 2013-09-17,Spark 0.8.0发布

  • 支持Scala2.9/YARN2.2/Standalone部署模式下调度的高可用性,shuffle优化等

  • 2014-01-24,Spark 0.9.0发布

  • 增加了GraphX,机器学习新特性,流式计算新特性,核心引擎优化(外部聚合、加强对YARN的支持)等

  • 2014-05-26,Spark 1.0.0发布

  • 增加了Spark SQL、MLlib、GraphX和Spark Streaming都增加了新特性并进行了优化。Spark核心引擎还增加了对安全YARN集群的支持

  • 2014-09-03,Spark 1.1.0发布

  • Spark核心API及Streaming,Python,SQL,GraphX和MLlib的bug修复

  • 2014-12-10,Spark 1.2.0发布

  • Spark核心API及Streaming,Python,SQL,GraphX和MLlib的bug修复

  • 2015-03-06,Spark 1.3.0发布

  • 该版本发布的最大亮点是新引入的DataFrame API,对于结构型的DataSet,它提供了更方便更强大的操作运算。。除了DataFrame之外,还值得关注的一点是Spark SQL成为了正式版本,这意味着它将更加的稳定,更加的全面。

  • 2015-06-03,Spark 1.4.0发布

  • 该版本将 R API 引入 Spark,同时提升了 Spark 的核心引擎和 MLlib ,以及 Spark Streaming 的可用性

  • 2015-09-09,Spark 1.5.0发布

  • Spark 1.5.0是1.x线上的第6个发行版。这个版本共处理了来自230+contributors和80+机构的1400+个patches。

  • Spark 1.5的许多改变都是围绕在提升Spark的性能、可用性以及操作稳定性。

  • Spark 1.5.0焦点在Tungsten项目,它主要是通过对低层次的组建进行优化从而提升Spark的性能。

  • Spark 1.5版本为Streaming增加了operational特性,比如支持backpressure。另外比较重要的更新就是新增加了一些机器学习算法和工具,并扩展了Spark R的相关API。

  • 2015-12-22,Spark 1.6.0发布

  • 该版本含了超过1000个patches,在这里主要展示三个方面的主题:新的Dataset API,性能提升(读取Parquet 50%的性能提升,自动内存管理,streaming state management十倍的性能提升),以及大量新的机器学习和统计分析算法。

  • 在Spark1.3.0引入DataFrame,它可以提供high-level functions让Spark更好地处理数据结构和计算。这让Catalyst optimizer 和Tungsten execution engine自动加速大数据分析。发布DataFrame之后开发者收到了很多反馈,其中一个主要的是大家反映缺乏编译时类型安全。为了解决这个问题,Spark采用新的Dataset API (DataFrame API的类型扩展)。Dataset API扩展DataFrame API支持静态类型和运行已经存在的Scala或Java语言的用户自定义函数。对比传统的RDD API,Dataset API提供更好的内存管理,特别是在长任务中有更好的性能提升。

  • 2016-07-20,Spark 2.0.0发布

  • 该版本主要更新APIs,支持SQL 2003,支持R UDF ,增强其性能。300个开发者贡献了2500补丁程序

  • 2016-12-16,Spark 2.1.0发布

  • 这是 2.x 版本线的第二个发行版。此发行版在为Structured Streaming进入生产环境做出了重大突破,Structured Streaming 现在支持了event time watermarks了并且支持Kafka0.10

  • 此外,此版本更侧重于可用性,稳定性和优雅(polish),并解决了1200多个tickets

  • 2017-07-01,Spark 2.2.0发布

  • 这是 2.x 系列的第三个版本。此版本移除了 Structured Streaming 的实验标记(experimental tag),意味着已可以放心在线上使用。

  • 该版本的更新内容主要针对的是系统的可用性、稳定性以及代码润色。包括:

    • Core 和 Spark SQL 的 API 升级和性能、稳定性改进,比如支持从 Hive metastore 2.0/2.1 中读取数据;支持解析多行的 JSON 或 CSV 文件;移除对 Java 7 的支持;移除对 Hadoop 2.5 及更早版本的支持 等
    • SparkR 针对现有的 Spark SQL 功能添加了更广泛的支持,比如 Structured Streaming 为 R 语言提供的 API ;R 语言支持完整的 Catalog API ;R 语言支持 DataFrame checkpointing 等
  • 2018-02-23,Spark 2.3.0发布

  • 这是 2.x 系列中的第四个版本。此版本增加了对 Structured Streaming 中的 Continuous Processing 以及全新的 Kubernetes Scheduler 后端的支持

  • 其他主要更新包括新的 DataSource 和 Structured Streaming v2 API,以及一些 PySpark 性能增强。

  • 此外,此版本继续改进项目的可用性、稳定性,并持续润色代码。

  • now

忠于技术,热爱分享。欢迎关注公众号:java大数据编程,了解更多技术内容。

数据 支持 版本 性能 处理 分析 机器 学习 程序 特性 可用性 数据分析 核心 算法 开发 多种 工程 引擎 稳定性 语言 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发app资料 厦门有什么软件开发小公司 数据库关系代数的符号怎么打 网络安全基础性书籍 服务器集群是什么意思 世界投入产出表数据库官网 海城市热电厂自动化控制软件开发 银行网络安全故障要求 计算机三级网络技术卷 梦幻西游第一批服务器 服务器文件的路径 黑客为什么老是攻击EA服务器 软件开发远程办公 网络安全服务工作管理办法 全国网络安全和信息化受益股 威海联想服务器总代理销售电话 g口发包服务器 网络安全工作机制运行情况 网络技术客服前景 漫说网络安全电子邮件篇 连云港市土地利用变更调查数据库 怎样知道服务器名字 腾讯手游服务器维修 hsf服务框架数据库连接 东川区综合软件开发报价表 ventsim软件开发 网络安全认识心得体会1000 什么是文档型数据库 网络安全法对上市公司的要求 漫说网络安全电子邮件篇
0