Spark on MaxCompute是MaxCompute提供的兼容开源Spark的计算服务。它在统一的计算资源和数据集权限体系之上,提供Spark计算框架,支持您以熟悉的开发使用方式提交运行Spark作业,满足更丰富的数据处理分析需求。

使用限制

  • Spark on MaxCompute支持如下场景:

    • 离线计算场景,例如GraphX、Mllib、RDD、Spark-SQL、PySpark等。

    • 读写MaxCompute Table。

    • 引用MaxCompute中的文件资源。

    • 读写VPC环境下的服务。例如,RDS、Redis、HBase、ECS上部署的服务等。

    • 读写OSS非结构化存储。

    • 读OSS、Hologres以及HBase外部表。

  • Spark on MaxCompute暂不支持如下场景:

    • 交互式和流计算类需求,例如Spark-Shell、Spark-SQL-Shell、PySpark-Shell、Spark Streaming等。

    • 不支持访问MaxCompute除OSS、Hologres以及HBase外部表之外的外部表、内建函数和自定义函数(MaxCompute UDF)。

    • 不支持在使用按量计费开发者版资源的项目中执行Spark作业。按量计费开发者版仅支持MaxCompute SQL(支持使用UDF)、PyODPS作业。

  • 不支持Checkpoint功能。

关键特性

  • 支持原生多版本Spark作业。

    MaxCompute支持社区原生Spark、完全兼容Spark的API,同时支持多个Spark版本同时运行。Spark on MaxCompute提供原生的Spark WebUI供您查看。

  • 统一的计算资源。

    Spark on MaxCompute类似MaxCompute SQL、MapReduce等作业类型,运行在MaxCompute项目统一开通的计算资源中。

  • 统一的数据和权限管理。

    完全遵循MaxCompute项目的权限体系,在访问用户权限范围内安全地查询数据。

  • 与开源系统相同的使用体验。

    Spark on MaxCompute与社区开源Spark保持相同的体验(例如开源应用的UI界面、在线交互等),完全符合Spark用户使用习惯。开源应用的调试过程中需要使用开源UI,Spark on MaxCompute提供原生的开源实时UI和查询历史日志的功能。其中,对于部分开源应用还支持交互式体验,在后台引擎运行后即可进行实时交互。

系统结构

Spark on MaxCompute是阿里云通过Spark on MaxCompute的解决方案,让原生Spark能够在MaxCompute中运行。

spark结构

左侧是原生Spark的架构图,右侧的Spark on MaxCompute运行在阿里云自研的Cupid平台之上,该平台可以原生支持开源社区Yarn所支持的计算框架。