
Apache Spark
最近更新 2026年10月6日
AI 爬虫读取
2次请求
1家公司- Anthropic2
- 词条页
- 2
- 争议页
- 0
- JSON · MD
- 0
- 首次读取
- 2026年11月4日
- 最近读取
- 2026年11月4日
统计自 2026年10月28日 · 数据来自本站服务器日志
概览
Apache Spark 是一个开源软件项目和技术品牌,其核心是面向大规模数据工作负载的分布式处理引擎。它起源于 2009 年加州大学伯克利分校的 AMPLab,当时 Matei Zaharia 及其合作者希望找到一种比传统磁盘密集型 MapReduce 工作流更灵活、更高效的方式来支持迭代算法和交互式分析。Spark 于 2010 年开源,随后进入 Apache 软件基金会,并于 2014 年成为 Apache 顶级项目。 Spark 的核心设计理念是为多类数据工作提供统一的编程模型。其执行引擎可以通过一个通用分布式框架处理批处理数据、交互式查询、持续到达的记录、机器学习工作负载和图计算。内存缓存和优化的执行计划可以减少迭代作业对磁盘的重复访问,而其 API 允许开发者使用 Scala、Java、Python、R 和 SQL 编写应用程序。Spark 可以在独立模式下运行,也可以在包括 Hadoop YARN、Kubernetes 和 Apache Mesos 在内的集群和云基础设施上运行,并且可以从 HDFS、Amazon S3、Apache Cassandra、Apache HBase、Apache Hive 等系统和其他数据源读取数据。 该项目的主要软件组件包括用于分布式执行和弹性数据抽象的 Spark Core;用于结构化数据处理和 SQL 查询的 Spark SQL;用于流处理的 Structured Streaming;用于可扩展机器学习的 MLlib;以及用于图计算的 GraphX。Python 接口 PySpark 对于在基于 Python 的分析环境中工作的数据科学家和工程团队尤为重要。这些组件共同将 Spark 定位为通用分析平台,而不是单一用途的数据库或消息代理。 Apache Spark 不是拥有独立股东、股票代码或标准公司总部的传统商业公司。它是一个由社区开发的 Apache 项目,通过 Apache 软件基金会的开源流程进行治理。商业公司、云提供商、系统集成商和研究组织围绕它构建服务、发行版、连接器和管理产品。由多位 Spark 原始贡献者创立的 Databricks 是与该项目相关的最知名商业公司之一,但 Apache Spark 本身仍然是 Apache 软件基金会的项目,而不是 Databricks 拥有的产品。 该技术应用于金融服务、广告、媒体、零售、电信、医疗保健、互联网服务和公共部门分析等领域。已报告的用例包括推荐系统、广告预测和竞价、客户流失建模、点击流分析、库存预测、网络优化、异常检测、欺诈分析和近实时监控。公开技术案例研究中提到的组织包括 Yelp、《华盛顿邮报》、GumGum、Hearst、Sharethrough、Shopify、Conviva 和 Netflix。这些例子说明了 Spark 作为需要将大规模数据工程与高级分析和机器学习相结合团队的基础设施的定位。 Spark 的生态系统与云数据平台、数据湖、湖仓架构、容器编排和现代机器学习运维一同演进。其开源许可和广泛的语言支持促进了在自管理集群和主要云提供商提供的托管服务中的采用。该项目的持续相关性取决于其社区、与不断变化的存储和计算系统的兼容性、执行性能,以及为批处理、流处理、SQL 和机器学习工作负载提供通用基础的能力。
沿革
Apache Spark 起源于 2009 年加州大学伯克利分校的 AMPLab,这是一个专注于算法、机器与人的研究实验室。Matei Zaharia 和其他研究人员针对他们在 Hadoop MapReduce 及类似面向磁盘的系统上遇到的局限开发了这一项目。迭代算法、交互式分析和机器学习工作负载可能需要对同一数据进行反复遍历,使得严格基于磁盘的执行模型效率低下。Spark 的设计目标是在可行时把中间数据保留在内存中,同时提供更广泛、更可编程的集群计算模型。 该项目于 2010 年以宽松许可证开源。其早期开发强调弹性分布式数据集(RDD)抽象,这种抽象允许分布式集合在故障后被重建,并在多个操作之间复用。这一设计帮助 Spark 将容错性与更快的迭代处理结合起来。项目最初在研究界和大数据社区中受到关注,随后通过语言绑定、库、连接器以及与 Hadoop 存储和调度系统的集成而不断扩展。 随着生态系统的成熟,Spark 的范围也不断扩大。Spark SQL 为引擎带来了结构化数据和 SQL 风格的查询。MLlib 提供了机器学习算法的分布式实现。GraphX 面向图分析,而 Spark Streaming 使应用能够处理持续到达的数据。后来的 Structured Streaming 使用 Spark 的结构化 API 为流处理应用提供了更高层次的模型。PySpark 使 Python 用户,包括使用笔记本工作流的数据科学家和工程师,也能使用该系统。 2013 年 6 月,Spark 被接纳进入 Apache 孵化器。此举将项目置于 Apache 软件基金会的治理之下,并在其最初的高校环境之外创建了更广泛的社区。2014 年 2 月,Spark 毕业成为 Apache 顶级项目。这一转变是一个重要的组织转折点:Spark 的方向、发布和社区流程成为精英制开源生态系统的一部分,而不再仅仅作为高校研究项目来管理。1.0.0 版本随后于 2014 年 5 月发布。 在 2010 年代中后期,Spark 成为企业大数据栈的重要组成部分。它可以在独立集群、Hadoop YARN、Apache Mesos 以及后来的 Kubernetes 上运行,同时与 HDFS、Hive、Cassandra、HBase 和 Amazon S3 等存储和数据库技术连接。其通用 API 使组织能够复用概念,并在许多情况下复用代码,覆盖批处理、SQL、机器学习和流处理工作负载。这种统一的方法使 Spark 区别于仅专注于批处理执行、流传输或数据库查询的系统。 该项目也促成了一个商业生态系统的形成。Databricks 由最初 Spark 团队的成员于 2013 年创立,并成为围绕 Spark 及相关开源技术构建的托管和企业数据平台的主要商业提供商。云提供商将 Spark 纳入托管集群和分析服务,降低了那些不想自行管理分布式基础设施的组织的运维门槛。独立供应商为广告系统、CRM 平台、云存储、数据仓库和业务应用开发了连接器和集成工具。 公开案例研究显示,Spark 被用于推荐引擎、广告优化、实时媒体分析、库存预测、点击流处理、客户留存分析和机器学习模型训练。Yelp 因在 Amazon EMR 上进行广告预测工作负载而被引用;《华盛顿邮报》因推荐模型而被引用;GumGum 因预测和日志分析而被引用;Hearst 因流式编辑分析而被引用;Sharethrough 因广告定向和创意优化而被引用;Shopify、Conviva 和 Netflix 等公司则因大规模分析或个性化相关应用而被引用。这些例子代表的是用户部署和集成,而非这些组织对 Apache Spark 的所有权。 如今,Apache Spark 仍然是一个活跃的开源项目,也是数据工程和分析基础设施领域公认的品牌。其竞争环境包括分布式 SQL 引擎、流处理平台、云原生数据仓库、湖仓系统以及其他开源框架。Spark 的持久作用建立在它的广度、语言支持、集成范围和庞大社区之上。与此同时,部署仍然需要在集群管理、存储格式、流处理语义、资源分配、数据治理和工作负载专门化方面做出选择。因此,Apache Spark 既是一个独立引擎,也是更广泛数据平台中的基础处理层。
- 2014
Spark 成为 Apache 顶级项目
[2]Spark 从孵化器毕业,成为 Apache 顶级项目。
- 2014
Spark 1.0.0 发布
[2]该项目发布了 1.0.0 版本,标志着一个早期重要版本里程碑。
- 2013
Spark 进入 Apache 孵化器
[2]Apache Spark 被接纳进入 Apache 软件基金会孵化器,作为其向基金会治理过渡的一部分。
- 2010
Spark 以开源形式发布
[1]该项目向更广泛的开发者与研究社区开放,使外部贡献和采用成为可能。
- 2009
Spark 在加州大学伯克利分校 AMPLab 诞生
[1]Matei Zaharia 及其合作者开始在加州大学伯克利分校的 AMPLab 开发 Spark,以更好地支持迭代式和交互式分布式工作负载。
产品与定位
分布式计算引擎
Spark Core
Spark Core 提供基础的分布式执行能力、调度、容错、API 以及数据抽象,供 Spark 生态系统的其余组件使用。它使应用能够将工作拆分到集群上执行,并在发生故障时恢复,同时支持与多种存储系统和部署管理器集成。
结构化数据分析
Spark SQL
Spark SQL 为 Spark 增加了结构化数据处理、SQL 查询、DataFrame API 以及优化后的查询执行能力。它使工程和分析团队能够在同一个分布式环境中处理关系型数据、半结构化数据源以及编程式转换。
流处理
Structured Streaming
Structured Streaming 基于 Spark 的结构化 API 提供高层流处理模型。它支持对持续到达的数据进行不断更新的计算,用于监控、事件处理、实时评分、推荐系统以及其他将流式输入与批处理分析相结合的应用。
机器学习
MLlib
MLlib 是 Spark 的可扩展机器学习库。它提供分布式算法和工具,用于分类、回归、聚类、推荐、特征工程和模型评估等任务,使团队能够在 Spark 处理的数据附近训练模型。
图处理
GraphX
GraphX 将 Spark 扩展至图计算与图并行分析领域。它支持各类图算法与图变换,同时允许图工作负载与 Spark 更广泛的数据处理抽象进行交互。
Python API
PySpark
PySpark 是 Spark 的 Python 接口,使开发者和数据科学家能够在 Python 应用、笔记本和生产流水线中使用 Spark 的分布式处理、SQL、流处理和机器学习能力。
营销活动
- 2014Sharethrough Spark Streaming 部署
United States · Advertising technology
Sharethrough 介绍了其扩大 Spark Streaming 在原生广告业务中应用的情况,涵盖受众定向、创意优化、内容质量评分、支出追踪以及实时竞价工作流。
结果. 该案例研究将 Spark Streaming 呈现为 Sharethrough 提升广告优化响应速度与可扩展性努力的一部分。
- Amazon EMR 上的 Apache Spark 客户用例
Global · Cloud computing · Media · Advertising · Internet services
Amazon Web Services 重点介绍了涉及 Yelp、《华盛顿邮报》、GumGum 和 Hearst 的部署。所报告的应用包括广告预测与模型训练、推荐引擎、库存预测、点击流与非结构化数据分析,以及近实时的编辑趋势监测。
结果. 这些示例展示了托管 Spark 集群如何支持不同行业中的机器学习、流式分析和大规模数据处理。
品牌决策
近期事件
来源7 个来源
引用本词条: 请引用规范词条页。 /brand-wiki/apache-spark · 编辑方针 · 词条如何编纂