Spark 简介与特征

Spark 简介与特征
最新回答
傲娇到底

2026-02-04 07:48:13

Apache Spark是一种快速的集群计算技术,专为快速计算而设计,它扩展了Hadoop MapReduce模型,支持多种计算类型,具有高效、灵活、易扩展等特点。

  • 简介

    起源与定位:Spark由Apache Software Foundation引入,旨在加速Hadoop计算软件过程,但它并非Hadoop的修改版本,不严格依赖Hadoop,拥有自己的集群管理能力,Hadoop只是其实现方式之一,Spark主要用Hadoop进行存储。

    设计基础与目标:基于Hadoop MapReduce并扩展该模型,使其更有效用于交互式查询和流处理等多种计算类型。旨在涵盖批处理应用程序、迭代算法、交互式查询和流式处理等各种工作负载,减少维护单独工具的管理负担。

    演变历程:2009年在加州大学伯克利分校的Matei Zaharia的AMPLab作为Hadoop子项目开发,2010年根据BSD许可开放,2013年捐赠给Apache软件基金会,2014年2月成为顶级Apache项目。

  • 特性

    速度

    性能提升表现:在Hadoop集群中运行应用程序时,内存计算速度比Hadoop MapReduce快100倍,磁盘计算速度快10倍。

    实现方式:通过减少磁盘读/写操作数量,将中间处理数据存储在内存中来实现性能提升。

    支持多种语言

    API提供情况:在Java、Scala或Python中提供内置API,方便用户使用不同语言编写应用程序。

    交互式查询支持:提供80个高级操作符用于交互式查询。

    高级分析

    计算类型支持:不仅支持“Map”和“reduce”,还支持SQL查询、流数据、机器学习(ML)和图算法。

    部署方式多样

    Standalone:Spark独立部署在HDFS顶部,明确为HDFS分配空间,Spark和MapReduce并行运行以覆盖集群上所有Spark作业。

    Hadoop Yarn:Spark运行在Yarn上,无需预安装或根访问,有助于将Spark集成到Hadoop生态系统或堆栈中,允许其他组件在堆栈顶部运行。

    Spark in MapReduce (SIMR):用于在独立部署之外启动Spark作业,用户可启动Spark并使用其shell而无需管理访问。

  • 组件

    Apache Spark Core

    地位与功能:是Spark平台的基础通用执行引擎,所有其他功能都基于此,在外部存储系统中提供内存计算和引用数据集。

    Spark SQL

    组件特点:是Spark Core之上的组件,引入SchemaRDD新数据抽象,为结构化和半结构化数据提供支持。

    Spark Streaming

    工作原理:利用Spark Core的快速调度功能执行流式分析,以小批量获取数据并对这些小批量数据执行RDD转换。

    MLlib (Machine Learning Library)

    框架性质与性能:是Spark之上的分布式机器学习框架,基于分布式内存的Spark架构。根据基准,针对交替最小二乘法(ALS)实现,比基于Hadoop磁盘的Apache Mahout版本快9倍(在Mahout获得Spark接口之前)。

    GraphX

    框架功能:是Spark上的分布式图形处理框架,提供用于表达图形计算的API,可通过Pregel抽象API为用户定义的图形建模,还为该抽象提供优化运行时。