本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon EMR on EKS 6.8.0 版本
以下 Amazon EMR 6.8.0 版本适用于 Amazon EMR on EKS。选择特定的 emr-6.8.0-XXXX 版本以查看更多详细信息,例如相关的容器映像标签。
Amazon EMR 6.8.0 的发布说明
-
支持的应用程序- Amazon SDK for Java 1.12.170、Spark 3.3.0-amzn-0、Hudi 0.11.1-amzn-0、Iceberg 0.14.0-amzn-0。
-
支持的组件:
aws-sagemaker-spark-sdk
、emr-ddb
、emr-goodies
、emr-s3-select
、emrfs
、hadoop-client
、hudi
、hudi-spark
、iceberg
、spark-kubernetes
。 -
受支持的配置分类:
分类 描述 core-site
更改 Hadoop 的 core-site.xml 文件中的值。
emrfs-site
更改 EMRFS 设置。
spark-metrics
更改 Spark 的 metrics.properties 文件中的值。
spark-defaults
更改 Spark 的 spark-defaults.conf 文件中的值。
spark-env
更改 Spark 环境中的值。
spark-hive-site
更改 Spark 的 hive-site.xml 文件中的值。
spark-log4j
更改 Spark 的 log4j.properties 文件中的值。
配置分类允许您自定义应用程序。这些通常与应用程序的配置 XML 文件(例如
spark-hive-site.xml
)相对应。有关更多信息,请参阅配置应用程序。
显著功能
-
Spark3.3.0 ‐ Amazon EMR EKS 6.8 包括 Spark 3.3.0,支持为 Spark 驱动程序和执行程序容器组(Pod)使用单独的节点选择器标签。这些新标签使您无需使用 pod 模板即可在 StartJobRun API 中分别定义驱动程序和执行程序 pod 的节点类型。
-
驱动程序节点选择器属性:spark.kubernetes.driver.node.selector.[labelKey]
-
执行程序节点选择器属性:spark.kubernetes.executor.node.selector.[labelKey]
-
-
增强型任务失败消息 ‐ 此版本引入了
spark.stage.extraDetailsOnFetchFailures.enabled
和spark.stage.extraDetailsOnFetchFailures.maxFailuresToInclude
配置来跟踪由于用户代码而导致的任务失败。当阶段由于随机获取失败而中止时,这些详细信息可用于增强驱动程序日志中显示的失败消息。属性名称 默认值 含义 最低版本 spark.stage.extraDetailsOnFetchFailures.enabled
false
如果设置为
true
,则当阶段由于随机获取失败而中止时,此属性可用于增强驱动程序日志中显示的任务失败消息。默认情况下,系统会跟踪由用户代码导致的最近 5 次任务失败,并将失败错误消息附加到驱动程序日志中。若要增加要跟踪的用户异常任务失败次数,请参阅配置
spark.stage.extraDetailsOnFetchFailures.maxFailuresToInclude
。emr-6.8
spark.stage.extraDetailsOnFetchFailures.maxFailuresToInclude
5
每个阶段每次尝试跟踪的任务失败次数。当阶段由于随机获取失败而中止时,此属性可用于增强驱动程序日志中显示的任务失败消息,并显示用户异常。
仅当 Config spark.stage 时,此属性才起作用。 extraDetailsOnFetchFailures.enabled 设置为 true。
emr-6.8
有关更多信息,请参阅 Apache Spark 配置文档
已知问题
-
Amazon EMR on EKS 6.8.0 错误地填充了使用 Apache Spark
生成的 Parquet 文件元数据中的构建哈希。此问题可能会导致解析由 Amazon EMR on EKS 6.8.0 生成的 Parquet 文件中的元数据版本字符串的工具失败。解析 Parquet 元数据中的版本字符串并依赖构建哈希的客户,应切换到其他 Amazon EMR 版本并重写该文件。
已解决的问题
-
PySpark 内核的中断内核功能 ‐ 可使用
Interrupt Kernel
功能,停止由在 Notebook 中执行单元格触发的进行中交互式工作负载。已引入修复程序,以便此功能适用于 PySpark 内核。这也可以在开源版本的变更中找到,用于处理 PySpark Kubernetes 内核 #1115 的中断。