Apache Spark - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Apache Spark

Apache Spark 是一个分布式处理框架和编程模型,可帮助您使用 Amazon EMR 集群进行机器学习、流处理或图形分析。Spark 与 Apache Hadoop 类似,也是一款常用于大数据工作负载的开源、分布式处理系统。但是,Spark 与 Hadoop MapReduce 有几个显著的区别。Spark 拥有经过优化的有向无环图 (DAG) 执行引擎并会积极地在内存中缓存数据,这可提高性能,尤其是对于某些算法和交互式查询。

Spark 内在支持使用 Scala、Python 和 Java 编写的应用程序。它还包含几个紧密集成的库,适用于 SQL(Spark SQL)、机器学习(MLlib)、流处理(Spark Streaming)和图形处理(GraphX)。这些工具可让您更轻松地在各种使用案例中充分发挥 Spark 框架的优势。

您可以在 Amazon EMR 集群上与其他 Hadoop 应用程序一同安装 Spark,它还能借助 Amazon EMR 文件系统(EMRFS)直接访问 Amazon S3 中的数据。Hive 还与 Spark 集成,因此你可以使用 HiveContext 对象通过 Spark 运行 Hive 脚本。Hive 上下文作为 sqlContext 包含在 Spark Shell 中。

有关使用 Spark 设置 EMR 集群和分析示例数据集的示例教程,请参阅新闻博客上的教程:Amazon EMR 入门。 Amazon

重要

Apache Spark 版本 2.3.1(从 Amazon EMR 发行版 5.16.0 开始提供)解决了 CVE-2018-8024CVE-2018-1334 问题。建议您将 Spark 的早期版本迁移到 Spark 2.3.1 版本或更高版本。

下表列出了 Amazon EMR 7.x 系列的最新发行版附带的 Spark 的版本,以及 Amazon EMR 随 Spark 一起安装的组件。

有关此版本中与 Spark 一起安装的组件的版本,请参阅 7.1.0 版本的组件版本

emr-7.1.0 的 Spark 版本信息
Amazon EMR 发行版标签 Spark 版本 随 Spark 安装的组件

emr-7.1.0

Spark 3.5.0

delta, emrfs, emr-goodies, emr-ddb, emr-s3-select, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hudi, hudi-spark, iceberg, livy-server, nginx, r, spark-client, spark-history-server, spark-on-yarn, spark-yarn-slave

下表列出了 Amazon EMR 6.x 系列的最新发行版附带的 Spark 的版本,以及 Amazon EMR 随 Spark 一起安装的组件。

有关此发行版中随 Spark 安装的组件版本,请参阅发行版 6.15.0 组件版本

emr-6.15.0 的 Spark 版本信息
Amazon EMR 发行版标签 Spark 版本 随 Spark 安装的组件

emr-6.15.0

Spark 3.4.1

aws-sagemaker-spark-sdk, delta, emrfs, emr-goodies, emr-ddb, emr-s3-select, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hudi, hudi-spark, iceberg, livy-server, nginx, r, spark-client, spark-history-server, spark-on-yarn, spark-yarn-slave

注意

Amazon EMR 发行版 6.8.0 随附 Apache Spar 3.3.0。此 Spark 发行版使用 Apache Log4j 2 和 log4j2.properties 文件,在 Spark 进程中配置 Log4j。如果您在集群中使用 Spark 或使用自定义配置参数创建 EMR 集群,并且希望升级到 Amazon EMR 发行版 6.8.0,则必须迁移到新的 spark-log4j2 配置分类和 Apache Log4j 2 的密钥格式。有关更多信息,请参阅 从 Apache Log4j 1.x 迁移到 Log4j 2.x

下表列出了 Amazon EMR 5.x 系列的最新发行版附带的 Spark 的版本,以及 Amazon EMR 随 Spark 一起安装的组件。

有关此版本中与 Spark 一起安装的组件的版本,请参阅 5.36.2 版组件版本

emr-5.36.2 的 Spark 版本信息
Amazon EMR 发行版标签 Spark 版本 随 Spark 安装的组件

emr-5.36.2

Spark 2.4.8

aws-sagemaker-spark-sdk, emrfs, emr-goodies, emr-ddb, emr-s3-select, hadoop-client, hadoop-hdfs-datanode, hadoop-hdfs-library, hadoop-hdfs-namenode, hadoop-httpfs-server, hadoop-kms-server, hadoop-yarn-nodemanager, hadoop-yarn-resourcemanager, hadoop-yarn-timeline-server, hudi, hudi-spark, livy-server, nginx, r, spark-client, spark-history-server, spark-on-yarn, spark-yarn-slave