本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Apache Spark 的运行时间 (emr-spark-8.0.0)
emr-spark-8.0.0 支持的生命周期
下表描述了 Amazon EMR Spark 8.0.0 支持的生命周期日期。
| 支持阶段 | 日期 |
|---|---|
| 最初发行日期 | 2026年5月21日 |
| 标准支持直到 | 2027 年 5 月 20 日 |
| 生命周期终止 | 2027 年 5 月 20 日 |
emr-spark-8.0.0 应用程序版本
此版本包括以下应用程序:AmazonCloudWatchAgent、Delta
下表列出了此版本的 Amazon EMR 中提供的应用程序版本以及前三个 Amazon EMR 发行版中的应用程序版本(若适用)。
有关每个发行版的 Amazon EMR 的应用程序版本的全面历史记录,请参见以下主题:
| emr-spark-8.0.0 | |
|---|---|
| AWS 适用于 Java 的 SDK | 2.41.32 |
| Python | 3.11、3.12、3.13 |
| Scala | 2.13.16 |
| AmazonCloudWatchAgent | 1.300032.2-amzn-0 |
| Delta | 4.0.0-amzn-1-spark |
| Hudi | 1.1.0-amzn-0 |
| Iceberg | 1.10.1-amzn-0 |
| JupyterEnterpriseGateway | 2.6.0 |
| Livy | 0.8.0-incubating |
| Spark | 4.0.2-amzn-0 |
emr-spark-8.0.0 发行说明
以下发行说明包括以 Apache Spark 4.0.2 为特色的亚马逊 EMR 版本 8.0.0(emr-spark-8.0.0)的信息。
新增内容
Apache Spark 4.0.2 GA — 亚马逊 EMR 上的 Spark 4.x 的第一个生产就绪版本,基于分支4.0上游分支,带有亚马逊针对性能、安全和集成的补丁。
在 EC2、EKS 和无服务器上可用 — 此版本适用于所有 Amazon EMR 部署模式。
ANSI SQL 模式-默认情况下启用更严格的类型处理,从而提高 SQL 的正确性以及与标准 SQL 行为的兼容性。
SQL PIPE 语法 — 新的 |> 运算符,用于以更具可读性的管道式语法链接 SQL 操作。
VARIANT 数据类型 — 原生支持使用 VARIANT 类型的半结构化 JSON 数据,无需显式架构定义即可启用读取模式模式。
SQL 脚本 — 控制流语句(IF/ELSE、WHILE、FOR)和用于 Spark SQL 中程序 SQL 逻辑的会话变量。
SQL User-Defined 函数-无需 Scala/Python 编写代码即可直接在 SQL 中定义 UDF。
直播增强功能 — 任意状态处理 API v2,带有转换WithState 运算符和增强的 RocksDB 变更日志检查点。
Apache Iceberg v3 Su pport — Iceberg 表中支持变体数据类型, AWS S3 表集成。
本机 Fine-grained 访问控制和完整表访问 (FTA) — 支持 Iceberg、Delta Lake 和 Hive 表。
JDK 17 默认 — Amazon Corretto 17 是默认 JVM;JDK 21 也可用。
Scala 2.13 — Spark 4.x 放弃了 Scala 2.12 的支持;所有组件都是针对 Scala 2.13 构建的。
自 emr-spark-8.0 预览版以来的变化和增强
Livy JupyterEnterpriseGateway 可作为交互式工作负载应用程序使用
持久 Spark 历史记录服务器支持
已知问题和限制
支持原生 FGAC 的 Spark Connect 安全端点在此版本中不可用。
AL2023 将 Python 3.9 作为系统 Python 发布,但 PySpark 工作负载不支持它。AL2023
从 EMR 7.x 迁移 (Spark 3.5.x)
从 EMR 7.x(使用 Spark 3.5.x)迁移到 emr-spark-8.0.0(Spark 4.0.2)时,可以考虑使用 Spark 升级代理来协助迁移。
ANSI SQL 模式为默认 — 更严格的类型强制转换;以前成功的隐式转换现在可能会引发错误。
Scala 2.13 — 所有 Spark 4.x 版本都使用 Scala 2.13。重新编译所有针对 Scala 2.12 构建的自定义 JAR。
JDK 17 默认 — Spark 4.0.2 仅支持 JDK 17(默认)和 JDK 21。
Python 3.11 默认 — Python 3.9 不再是的默认设置。 PySpark验证你的 Python 依赖关系的兼容性。
AWS SD AWS K — 适用于 Java 的 SDK v1 已被移除。更新您的应用程序以使用 AWS SDK v2 来改善性能和资源管理。
S3 访问权限 — EMRFS 不再可用。使用 S3A 连接器将永久数据写入 Amazon S3,以获得更好的性能和兼容性。参见使用 EMR S3A 优化 Apache Spark 的亚马逊 EMR 运行时。emr-s3-selec
t 已被删除。 交互式开发 — JupyterHub、齐柏林飞艇和 Hue 不再包括在内。要进行交互式 Spark 开发,请使用 EMR Studio、Livy 和。 JupyterEnterpriseGateway
单独的版本系列 — 发布标签是 emr-spark-8.0.0,而不是 emr-8.0.0。此版本以 Spark 为重点。对于 Flink、HBase、Phoenix、Tez、Trino、Presto,请使用 EMR 7.x 并等待未来的 emr-8.0.0 多引擎发布。不包括 Pig 和 Ooozie。
用于 EMR 集群通信的 VPC 终端节点 — 从 Amazon EMR Spark 8.0.0 开始,EC2 上的 Amazon EMR 会在您的 VPC 中预置一个 VPC 终端节点,用于在私有子网中启动集群时,亚马逊 EMR 服务与您的集群之间的通信。您的 Amazon EMR 服务角色必须包含
ec2:CreateVpcEndpoint和ec2:ModifyVpcEndpoint权限,或者您必须在启动集群之前手动创建 VPC 终端节点。VPC 终端节点服务名称为aws.api.。region.emr-service-cell01此更改更新了私有子网集群的联网要求:
连接到 VPC 终端节点的服务访问安全组 (
ElasticMapReduce-ServiceAccess) 需要来自 VPC CIDR 块的入站 HTTPS(端口 443)。不再需要 Amazon EMR 7.x 及更早版本中使用的端口 8443/9443 规则。主实例安全组需要服务访问安全组的出站 HTTPS(端口 443)。
Amazon EMR 7.x 及更早版本中使用的入站端口 8443 和出站端口 9443 规则不再需要在主实例安全组、核心实例和任务实例安全组上使用。
如果您对 Amazon S3 使用自定义 VPC 终端节点策略,则必须允许访问 Amazon EMR 实例数据存储桶(
aws157-instance-data-0-prod-和)。regionaws157-instance-data-1-prod-region
有关更多信息,请参阅 Amazon EMR 管理指南中的私有子网中的 EMR 集群、Amazon EMR-managed 安全组和私有子网的最低 Amazon S3 策略。
emr-spark-8.0.0 默认 Java 版本
| 应用程序 | Java/Amazon Corretto 版本(默认为粗体) |
|---|---|
| Spark | 17、21 |
| Livy | 17、11、8 |
| Hadoop | 17、11、8 |
emr-spark-8.0.0 组件版本
下面列出了 Amazon EMR 随此发行版一起安装的组件。一些组件作为大数据应用程序包的一部分安装。其它组件是 Amazon EMR 独有的,并且已为系统流程和功能安装这些组件。这些通常以emr或开头aws。 Big-data 最新 Amazon EMR 版本中的应用程序包通常是社区中的最新版本。我们会尽快在 Amazon EMR 中提供社区发行版。
Amazon EMR 中的某些组件与社区版本不同。这些组件具有以下形式的 的发行版标注。CommunityVersion-amzn-EmrVersion 从 0 开始。例如,假设已对名为 EmrVersionmyapp-component 的版本 2.2 的开源社区组件进行三次修改,以包含在不同的 Amazon EMR 发行版中,则其发行版将为 2.2-amzn-2。
| 组件 | 版本 | 说明 |
|---|---|---|
| adot-java-agent | 1.31.0 | 从应用程序进程守护程序收集指标的 Java 代理。 |
| delta | 4.0.0-amzn-1-spark | Delta lake 是一种适用于超大型分析数据集的开放表格式。 |
| emr-amazon-cloudwatch-agent | 1.300032.2-amzn-0 | 从 Amazon EC2 实例中收集内部系统级别指标和自定义应用程序指标的应用程序。 |
| emr-ddb | 6.0.0 | 适用于 Hadoop 生态系统应用程序的 Amazon DynamoDB 连接器。 |
| emr-goodies | 3.22.0-spark | 适用于 Hadoop 生态系统的方便易用的库。 |
| emr-notebook-env | 1.18.0 | 适用于 EMR Notebooks(可提供 jupyter 企业网关)的 Conda env |
| emr-s3-dist-cp | 2.44.0 | 针对 Amazon S3 优化的分布式复制应用程序。 |
| hadoop-client | 3.4.2-amzn-1 | Hadoop 命令行客户端,如“hdfs”、“hadoop”或“yarn”。 |
| hadoop-hdfs-datanode | 3.4.2-amzn-1 | 用于存储数据块的 HDFS 节点级服务。 |
| hadoop-hdfs-library | 3.4.2-amzn-1 | HDFS 命令行客户端和库 |
| hadoop-hdfs-namenode | 3.4.2-amzn-1 | 用于跟踪文件名和数据块位置的 HDFS 服务。 |
| hadoop-hdfs-zkfc | 3.4.2-amzn-1 | ZKFC 服务,用于跟踪 HA 模式的命名节点。 |
| hadoop-hdfs-journalnode | 3.4.2-amzn-1 | 用于管理 HA 集群上的 Hadoop 文件系统日志的 HDFS 服务。 |
| hadoop-httpfs-server | 3.4.2-amzn-1 | 用于 HDFS 操作的 HTTP 终端节点。 |
| hadoop-kms-server | 3.4.2-amzn-1 | 基于 Hadoop 的 API 的加密密钥管理服务器。 KeyProvider |
| hadoop-mapred | 3.4.2-amzn-1 | MapReduce 用于运行 MapReduce 应用程序的执行引擎库。 |
| hadoop-yarn-nodemanager | 3.4.2-amzn-1 | 用于管理单个节点上的容器的 YARN 服务。 |
| hadoop-yarn-resourcemanager | 3.4.2-amzn-1 | 用于分配和管理集群资源与分布式应用程序的 YARN 服务。 |
| hadoop-yarn-timeline-server | 3.4.2-amzn-1 | 用于检索 YARN 应用程序的当前信息和历史信息的服务。 |
| hudi | 1.1.0-amzn-0 | 增量处理框架,以支持低延迟和高效率的数据管道。 |
| hudi-spark | 1.1.0-amzn-0 | 用于运行 Spark 以及 Hudi 的捆绑库。 |
| iceberg | 1.10.1-amzn-0 | Apache Iceberg 是一种适用于超大型分析数据集的开放表格式。 |
| livy-server | 0.8.0-incubating | 用于与 Apache Spark 交互的 REST 接口 |
| nginx | 1.12.1 | nginx [引擎 x] 是 HTTP 和反向代理服务器 |
| mariadb-server | 5.5.68+ | MariaDB 数据库服务器。 |
| nvidia-cuda | 12.5.0 | Nvidia 驱动程序和 Cuda 工具包 |
| r | 4.3.2 | 用于统计计算的 R 项目 |
| spark-client | 4.0.2-amzn-0 | Spark 命令行客户端。 |
| spark-history-server | 4.0.2-amzn-0 | 用于查看完整的 Spark 应用程序的生命周期的已记录事件的 Web UI。 |
| spark-on-yarn | 4.0.2-amzn-0 | In-memory 适用于 YARN 的执行引擎。 |
| spark-yarn-slave | 4.0.2-amzn-0 | YARN 从属项所需的 Apache Spark 库。 |
| spark-rapids | 26.02.2-amzn-0 | 加速 Apache Spark 和 GPU 的 Nvidia Spark RAPIDS。 |
| zookeeper-server | 3.9.3-amzn-6 | 用于维护配置信息、命名、提供分布式同步以及提供组服务的集中式服务。 |
| zookeeper-client | 3.9.3-amzn-6 | ZooKeeper 命令行客户端。 |
emr-spark-8.0.0 配置分类
配置分类允许您自定义应用程序。这些通常与应用程序的配置 XML 文件(例如 hive-site.xml)相对应。有关更多信息,请参阅配置应用程序。
为处于运行状态的集群中的实例组指定配置时,将发生重新配置操作。Amazon EMR 仅为您修改的分类启动重新配置操作。有关更多信息,请参阅 在正在运行的集群中重新配置实例组。
| 分类 | 说明 | 重新配置操作 |
|---|---|---|
capacity-scheduler | 更改 Hadoop 的 capacity-scheduler.xml 文件中的值。 | Restarts the ResourceManager service. |
container-executor | 更改 Hadoop YARN 的 container-executor.cfg 文件中的值。 | Not available. |
container-log4j | 更改 Hadoop YARN 的 container-log4j.properties 文件中的值。 | Not available. |
core-site | 更改 Hadoop 的 core-site.xml 文件中的值。 | Restarts the Hadoop HDFS services Namenode, SecondaryNamenode, Datanode, ZKFC, and Journalnode. Restarts the Hadoop YARN services ResourceManager, NodeManager, ProxyServer, and TimelineServer. Additionally restarts Hadoop KMS, Hadoop Httpfs, and MapReduce-HistoryServer. |
docker-conf | 更改 docker 相关设置。 | Not available. |
hadoop-env | 更改适用于所有 Hadoop 组件的 Hadoop 环境中的值。 | Restarts the Hadoop HDFS services Namenode, SecondaryNamenode, Datanode, ZKFC, and Journalnode. Restarts the Hadoop YARN services ResourceManager, NodeManager, ProxyServer, and TimelineServer. Additionally restarts MapReduce-HistoryServer. |
hadoop-log4j | 更改 Hadoop 的 log4j.properties 文件中的值。 | Restarts the Hadoop HDFS services SecondaryNamenode, Datanode, and Journalnode. Restarts the Hadoop YARN services ResourceManager, NodeManager, ProxyServer, and TimelineServer. Additionally restarts Hadoop KMS, Hadoop Httpfs, and MapReduce-HistoryServer. |
hadoop-ssl-server | 更改 hadoop ssl 服务器配置 | Not available. |
hadoop-ssl-client | 更改 hadoop ssl 客户端配置 | Not available. |
hdfs-encryption-zones | 配置 HDFS 加密区域。 | This classification should not be reconfigured. |
hdfs-env | 更改 HDFS 环境中的值。 | Restarts Hadoop HDFS services Namenode, Datanode, and ZKFC. |
hdfs-site | 更改 HDFS 的 hdfs-site.xml 中的值。 | Restarts the Hadoop HDFS services Namenode, SecondaryNamenode, Datanode, ZKFC, and Journalnode. Additionally restarts Hadoop Httpfs. |
httpfs-env | 更改 HTTPFS 环境中的值。 | Restarts Hadoop Httpfs service. |
httpfs-site | 更改 Hadoop 的 httpfs-site.xml 文件中的值。 | Restarts Hadoop Httpfs service. |
hadoop-kms-acls | 更改 Hadoop 的 kms-acls.xml 文件中的值。 | Not available. |
hadoop-kms-env | 更改 Hadoop KMS 环境中的值。 | Restarts Hadoop-KMS service. |
hadoop-kms-java-home | 更改 Hadoop 的 KMS java 主页 | Not available. |
hadoop-kms-log4j | 更改 Hadoop 的 kms-log4j.properties 文件中的值。 | Not available. |
hadoop-kms-site | 更改 Hadoop 的 kms-site.xml 文件中的值。 | Restarts Hadoop-KMS. |
hudi-env | 更改 Hudi 环境中的值。 | Not available. |
hudi-defaults | 更改 Hudi 的 hudi-defaults.conf 文件中的值。 | Not available. |
iceberg-defaults | 更改 Iceberg 的 iceberg-defaults.conf 文件中的值。 | Not available. |
delta-defaults | 更改 Delta 的 delta-defaults.conf 文件中的值。 | Not available. |
jupyter-notebook-conf | 更改 Jupyter Notebook 的 jupyter_notebook_config.py 文件中的值。 | Not available. |
jupyter-s3-conf | 配置 Jupyter Notebook S3 持久性。 | Not available. |
jupyter-sparkmagic-conf | 更改 Sparkmagic 的 config.json 文件中的值。 | Not available. |
livy-conf | 更改 Livy 的 livy.conf 文件中的值。 | Restarts Livy Server. |
livy-env | 更改 Livy 环境中的值。 | Restarts Livy Server. |
livy-log4j2 | 更改 Livy log4j2.properties 设置。 | Restarts Livy Server. |
mapred-env | 更改 MapReduce 应用程序环境中的值。 | Restarts Hadoop MapReduce-HistoryServer. |
mapred-site | 更改 MapReduce 应用程序的 mapred-site.xml 文件中的值。 | Restarts Hadoop MapReduce-HistoryServer. |
spark | Apache Spark 的亚马逊 EMR-curated 设置。 | This property modifies spark-defaults. See actions there. |
spark-defaults | 更改 Spark 的 spark-defaults.conf 文件中的值。 | Restarts Spark history server and Spark thrift server. |
spark-env | 更改 Spark 环境中的值。 | Restarts Spark history server and Spark thrift server. |
spark-hive-site | 更改 Spark 的 hive-site.xml 文件中的值 | Not available. |
spark-log4j2 | 更改 Spark 的 log4j2.properties 文件中的值。 | Restarts Spark history server and Spark thrift server. |
spark-metrics | 更改 Spark 的 metrics.properties 文件中的值。 | Restarts Spark history server and Spark thrift server. |
yarn-env | 更改 YARN 环境中的值。 | Restarts the Hadoop YARN services ResourceManager, NodeManager, ProxyServer, and TimelineServer. Additionally restarts MapReduce-HistoryServer. |
yarn-site | 更改 YARN 的 yarn-site.xml 文件中的值。 | Restarts the Hadoop YARN services ResourceManager, NodeManager, ProxyServer, and TimelineServer. Additionally restarts Livy Server and MapReduce-HistoryServer. |
zookeeper-config | 更改 ZooKeeper的 zoo.cfg 文件中的值。 | Restarts Zookeeper server. |
zookeeper-logback | 更改 ZooKeeper的 logback.xml 文件中的值。 | Restarts Zookeeper server. |
cloudwatch-logs | 为 EMR 集群节点配置 CloudWatch 日志集成。 | Not available. |
emr-metrics | 更改此节点的 emr 指标设置。 | Restarts the CloudWatchAgent service. |
EMR Spark 8.0.0 更新日志
| 日期 | 事件 | 说明 |
|---|---|---|
| 2026-05-21 | 文档发布 | 亚马逊 EMR Spark 8.0.0 (emr-spark-8.0.0) 发行说明首次发布 |