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

发布说明的 Amazon EMR 存档

下面提供了所有 Amazon EMR 发行版的发布说明。有关每个发行版的全面版本信息,请参阅 Amazon EMR 6.x 发行版Amazon EMR 5.x 发行版Amazon EMR 4.x 发行版

订阅 RSS 源,通过 https://docs.amazonaws.cn/emr/latest/ReleaseGuide/amazon-emr-release-notes.rss 获取 Amazon EMR 发布说明,以便在新的 Amazon EMR 发行版可用时接收更新。

发行版 6.14.0

以下发布说明包括有关 Amazon EMR 发行版 6.14.0 的信息。更改与 6.13.0 有关。有关发布时间表的更多信息,请参阅 更改日志

新特征
  • Amazon EMR 6.14.0 supports Apache Spark 3.4.1, Apache Spark RAPIDS 23.06.0-amzn-2, Flink 1.17.1, Iceberg 1.3.1, and Trino 422.

  • Amazon EMR 托管式自动扩缩功能 现已在 ap-southeast-3 亚太地区(雅加达)区域开放,可用于您使用 Amazon EMR 6.14.0 及更高版本创建的集群。

更改、增强功能和解决的问题
  • 6.14.0 发行版通过在 Amazon EC2 上运行的 Amazon EMR 来优化日志管理。因此,您可能会看到集群日志的存储成本略有降低。

  • 6.14.0 发行版改进了扩展工作流,以满足 Amazon EBS 卷大小差异很大的不同核心实例需求。此改进仅适用于核心节点;任务节点的缩减操作不受影响。

  • 6.14.0 发行版改进了 Amazon EMR 与 Apache Hadoop YARN ResourceManager and HDFS NameNode 等开源应用程序交互的方式。此改进降低了集群扩展导致操作延迟的风险,并减少了由于开源应用程序连接问题导致的启动故障。

  • 6.14.0 发行版优化了集群启动时的应用程序安装。此改进缩短了某些 Amazon EMR 应用程序组合的集群启动时间。

  • 6.14.0 发行版修复了在具有自定义域的 VPC 上运行的集群遇到核心节点或任务节点重启时,集群的缩减操作可能会停滞的问题。

  • 当您使用 Amazon EMR 5.36 或更高版本或 6.6 或更高版本的最新补丁版本启动集群时,Amazon EMR 会使用最新的 Amazon Linux 2 版本作为默认 Amazon EMR AMI。如需更多信息,请参阅 Using the default Amazon Linux AMI for Amazon EMR

    OsReleaseLabel(Amazon Linux 版本) Amazon Linux 内核版本 可用日期 支持的区域
    2.0.20230906.0 4.14.322 2023 年 9 月 11 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)、以色列(特拉维夫)

发行版 6.13.0

以下发布说明包括有关 Amazon EMR 版本 6.13.0 的信息。更改与 6.12.0 有关。有关发布时间表的更多信息,请参阅 更改日志

新特征
  • Amazon EMR 6.13.0 supports Apache Spark 3.4.1, Apache Spark RAPIDS 23.06.0-amzn-1, CUDA Toolkit 11.8.0, and JupyterHub 1.5.0.

更改、增强功能和解决的问题
  • 6.13.0 版本改进了 Amazon EMR 日志管理进程守护程序,以确保在发出集群终止命令时,所有日志都定期上传到 Amazon S3。这有助于更快地终止集群。

  • 6.13.0 版本增强了 Amazon EMR 日志管理功能,确保所有日志文件一致而及时地上传到 Amazon S3。这尤其有利于长期运行的 EMR 集群。

  • 当您使用 Amazon EMR 5.36 或更高版本或 6.6 或更高版本的最新补丁版本启动集群时,Amazon EMR 会使用最新的 Amazon Linux 2 版本作为默认 Amazon EMR AMI。如需更多信息,请参阅 Using the default Amazon Linux AMI for Amazon EMR

    OsReleaseLabel(Amazon Linux 版本) Amazon Linux 内核版本 可用日期 支持的区域
    2.0.20230808.0 4.14.320 2023 年 8 月 24 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)、以色列(特拉维夫)

版本 6.12.0

以下发布说明包括有关 Amazon EMR 版本 6.12.0 的信息。更改与 6.11.0 有关。有关发布时间表的更多信息,请参阅 更改日志

新特征
  • Amazon EMR 6.12.0 supports Apache Spark 3.4.0, Apache Spark RAPIDS 23.06.0-amzn-0, CUDA 11.8.0, Apache Hudi 0.13.1-amzn-0, Apache Iceberg 1.3.0-amzn-0, Trino 414, and PrestoDB 0.281.

  • Amazon EMR 发布 6.12.0 及更高版本支持 LDAP 通过 HiveServer2(HS2)、Trino、Presto 和 Hue 与 Apache Livy、Apache Live 集成。您还可以在使用 6.12.0 或更高版本的 EMR 集群上安装 Apache Spark 和 Apache Hadoop,并将它们配置为使用 LDAP。有关更多信息,请参阅使用 Active Directory 或 LDAP 服务器通过 Amazon EMR 进行身份验证

更改、增强功能和解决的问题
  • Amazon EMR 6.12.0 及更高版本为 Flink 提供 Java 11 运行时系统支持。有关更多信息,请参阅将 Flink 配置为使用 Java 11 运行

  • Amazon EMR 6.12.0 默认支持所有搭载 Amazon Corretto 8 的应用程序,但 Trino 除外。对于 Trino,Amazon EMR 从Amazon EMR 版本 6.9.0 开始默认支持 Amazon Corretto 17。Amazon EMR 还支持某些搭载 Amazon Corretto 11 和 17 的应用程序。下表列出了这些应用程序。如果要更改集群上的默认 JVM,请按照在集群上运行的每个应用程序的 配置应用程序来使用特定 Java 虚拟机 中的说明进行操作。一个集群只能使用一个 Java 运行时系统版本。Amazon EMR 不支持在同一集群的不同运行时系统版本上运行不同的节点或应用程序。

    虽然 Amazon EMR 在 Apache Spark、Apache Hadoop 和 Apache Hive 上同时支持 Amazon Corretto 11 和 17,但当您使用这些版本的 Corretto 时,某些工作负载的性能可能会下降。我们建议您在更改默认值之前先测试工作负载。

    Amazon EMR 6.12 中应用程序的默认 Java 版本
    应用程序 Java/Amazon Corretto 版本(默认为粗体)
    Delta 17、11、8
    Flink 11、8
    Ganglia 8
    HBase 11、8
    HCatalog 17、11、8
    Hadoop 17、11、8
    Hive 17、11、8
    Hudi 17、11、8
    Iceberg 17、11、8
    Livy 17、11、8
    Oozie 17、11、8
    Phoenix 8
    PrestoDB 8
    Spark 17、11、8
    Spark RAPIDS 17、11、8
    Sqoop 8
    Tez 17、11、8
    Trino 17
    Zeppelin 8
    Pig 8
    Zookeeper 8
  • 6.12.0 版本为运行 Presto 或 Trino 的 EMR 集群的集群扩展工作流程添加了新的重试机制。这一改进降低了由于单个调整大小操作失败而导致集群大小调整无限期停滞的风险。它还可以提高集群利用率,因为您的集群可以更快地向上和向下扩展。

  • 6.12.0 版本修复了一个问题,即当处于正常停用状态的核心节点在完全停用之前出于任何原因变得运行不正常时,集群的缩减操作可能会停滞不前。

  • 6.12.0 版本改进了集群缩减逻辑,因此您的集群不会尝试将核心节点缩减到低于集群 HDFS 复制因子设置的范围。这符合您的数据冗余要求,并减少了扩展操作可能停滞的机会。

  • 6.12.0 版本通过提高记录实例状态变化的速度,提高了 Amazon EMR 运行状况监控服务的性能和效率。这一改进降低了运行多个自定义客户端工具或第三方应用程序的集群节点性能下降的机会。

  • 6.12.0 版本提高了 Amazon EMR 的集群上日志管理进程守护程序的性能。因此,对于以高并发度运行步骤的 EMR 集群,性能下降的可能性较小。

  • 在 Amazon EMR 6.12.0 版本中,日志管理进程守护程序已升级,可以识别本地实例存储中所有包含打开文件句柄的使用中的日志,以及相关的进程。此次升级可确保 Amazon EMR 在日志存档到 Amazon S3 后正确删除文件并回收存储空间。

  • 6.12.0 版本包括日志管理进程守护程序增强功能,可删除本地集群文件系统中空的、未使用的步骤目录。过多的空目录会降低 Amazon EMR 进程守护程序的性能并导致磁盘过度使用。

  • 6.12.0 版本支持 YARN Timeline Server 日志的日志轮换。这样可以最大限度地减少磁盘过度使用情况,特别是对于长时间运行的集群。

  • Amazon EMR 6.10.0 及更高版本的默认根卷大小已增加到 15 GB。早期版本的默认根卷大小为 10 GB。

  • 当您使用 Amazon EMR 5.36 或更高版本或 6.6 或更高版本的最新补丁版本启动集群时,Amazon EMR 会使用最新的 Amazon Linux 2 版本作为默认 Amazon EMR AMI。如需更多信息,请参阅 Using the default Amazon Linux AMI for Amazon EMR

    OsReleaseLabel(Amazon Linux 版本) Amazon Linux 内核版本 可用日期 支持的区域
    2.0.20230727.0 4.14.320 2023 年 8 月 14 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)、以色列(特拉维夫)
    2.0.20230719.0 4.14.320 2023 年 8 月 2 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)、以色列(特拉维夫)
    2.0.20230628.0 4.14.318 2023 年 7 月 12 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)

版本 6.11.1

以下发布说明包括有关 Amazon EMR 版本 6.11.1 的信息。更改与 6.11.0 有关。有关发布时间表的更多信息,请参阅 更改日志

更改、增强功能和解决的问题
  • 由于锁争用,如果在尝试停用节点的同时添加或移除节点,则该节点可能会陷入死锁。结果,Hadoop 资源管理器(YARN)变得无响应,并会影响所有传入和当前正在运行的容器。

  • 此版本包括一项更改,允许高可用性集群在重启后从故障状态中恢复。

  • 此版本包含针对 Hue 和 HBase 的安全补丁。

  • 此版本修复了在 Spark 上使用 Amazon EMR 运行工作负载的集群可能会静默收到包含 containsstartsWithendsWithlike 错误结果的问题。当您在 Amazon EMR Hive3 Metastore 服务器(HMS)中使用包含元数据的分区字段的表达式时,就会出现此问题。

  • 此版本修复了没有用户定义函数(UDF)时在 Glue 端的节流问题。

  • 此版本修复了在 YARN 停用时,在日志推送器能够将容器日志推送到 S3 之前,节点日志聚合服务会删除容器日志的问题。

  • 此版本修复了 Hadoop 启用节点标签时 FairShare 调度器指标的问题。

  • 此版本修复了您在 spark-defaults.conf 中为 spark.yarn.heterogeneousExecutors.enabled 配置设置默认 true 值时影响 Spark 性能的问题。

  • 此版本修复了 Reduce Task 无法读取随机数据的问题。该问题因内存损坏错误导致 Hive 查询失败。

  • 此版本为运行 Presto 或 Trino 的 EMR 集群的集群扩展工作流程添加了新的重试机制。这一改进降低了由于单个调整大小操作失败而导致集群大小调整无限期停滞的风险。它还可以提高集群利用率,因为您的集群可以更快地向上和向下扩展。

  • 此版本改进了集群缩减逻辑,因此您的集群不会尝试将核心节点缩减到低于集群 HDFS 复制因子设置的范围。这符合您的数据冗余要求,并减少了扩展操作可能停滞的机会。

  • 日志管理进程守护程序已升级,可以识别本地实例存储中所有包含打开文件句柄的使用中的日志,以及相关的进程。此次升级可确保 Amazon EMR 在日志存档到 Amazon S3 后正确删除文件并回收存储空间。

  • 此版本包括日志管理进程守护程序增强功能,可删除本地集群文件系统中空的、未使用的步骤目录。过多的空目录会降低 Amazon EMR 进程守护程序的性能并导致磁盘过度使用。

  • 当您使用 Amazon EMR 5.36 或更高版本或 6.6 或更高版本的最新补丁版本启动集群时,Amazon EMR 会使用最新的 Amazon Linux 2 版本作为默认 Amazon EMR AMI。如需更多信息,请参阅 Using the default Amazon Linux AMI for Amazon EMR

    OsReleaseLabel(Amazon Linux 版本) Amazon Linux 内核版本 可用日期 支持的区域
    2.0.20230727.0 4.14.320 2023 年 8 月 14 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、加拿大(中部)

版本 6.11.0

以下发布说明包括有关 Amazon EMR 版本 6.11.0 的信息。更改与 6.10.0 有关。有关发布时间表的信息,请参阅更改日志

新特征
  • Amazon EMR 6.11.0 支持 Apache Spark 3.3.2-amzn-0、Apache Spark RAPIDS 23.02.0-amzn-0、CUDA 11.8.0、Apache Hudi 0.13.0-amzn-0、Apache Iceberg 1.2.0-amzn-0、Trino 410-amzn-0 和 PrestoDB 0.279-amzn-0。

更改、增强功能和解决的问题
  • 在 Amazon EMR 6.11.0 中,DynamoDB 连接器已升级到 5.0.0 版。5.0.0 版本使用 Amazon SDK for Java 2.x。之前的版本使用的是 Amazon SDK for Java 1.x。由于此次升级,我们强烈建议您在将 DynamoDB 连接器与 Amazon EMR 6.11 配合使用之前,先测试您的代码。

  • 当 Amazon EMR 6.11.0 的 DynamoDB 连接器调用 DynamoDB 服务时,它会使用您为 dynamodb.endpoint 属性提供的区域值。我们建议您在使用 dynamodb.endpoint 时也配置 dynamodb.region,并且两个属性都以相同的 Amazon Web Services 区域 为目标。如果您使用 dynamodb.endpoint 但不配置 dynamodb.region,则适用于 Amazon EMR 6.11.0 的 DynamoDB 连接器将返回一个无效的区域异常,并尝试协调来自 Amazon EC2 实例元数据服务(IMDS)的 Amazon Web Services 区域 信息。如果连接器无法从 IMDS 检索区域,则默认为美国东部(弗吉尼亚州北部)(us-east-1)。以下错误是您未正确配置该 dynamodb.region 属性时可能会遇到的无效区域异常的示例:error software.amazon.awssdk.services.dynamodb.model.DynamoDbException: Credential should be scoped to a valid region. 有关受 Amazon SDK for Java 升级到 2.x 影响的类的更多信息,请参阅 Amazon EMR – DynamoDB 连接器的 GitHub 存储库中的 Upgrade Amazon SDK for Java from 1.x to 2.x (#175) 提交。

  • 此版本修复了在执行列重命名操作后使用 Delta Lake 在 Amazon S3 中存储 Delta 表数据时列数据变为 NULL 的问题。有关 Delta Lake 中此实验性功能的更多信息,请参阅《Delta Lake User Guide》中的 Column rename operation

  • 6.11.0 版本修复了通过从具有多个主节点的集群中复制一个主节点来创建边缘节点时可能出现的问题。复制的边缘节点可能会导致缩减操作的延迟,或者导致主节点的内存使用率过高。有关如何创建边缘节点以与 EMR 集群通信的更多信息,请参阅 GitHub aws-samples 存储库中的 Edge Node Creator

  • 6.11.0 版本改进了 Amazon EMR 用于在重启后将 Amazon EBS 卷重新挂载到实例的自动化流程。

  • 6.11.0 版本修复了导致 Amazon EMR 向 Amazon CloudWatch 发布的 Hadoop 指标间歇性出现差距的问题。

  • 6.11.0 版本修复了 EMR 集群的一个问题,即由于磁盘过度使用而导致对包含集群节点排除列表的 YARN 配置文件的更新中断。不完整的更新阻碍了未来对集群的缩减操作。此版本可确保您的集群保持正常运行,并确保扩展操作按预期进行。

  • Amazon EMR 6.10.0 及更高版本的默认根卷大小已增加到 15 GB。早期版本的默认根卷大小为 10 GB。

  • Hadoop 3.3.3 在 YARN(YARN-9608)中引入了一项更改,即在应用程序完成之前,容器运行所在的节点一直处于停用状态。此更改可确保如随机数据等本地数据不会丢失,并且您无需重新运行作业。无论是否启用托管扩展,这种方法还可能导致集群的资源利用不足。

    在 Amazon EMR 6.11.0 及更高版本以及 6.8.1、6.9.1 和 6.10.1 中,在 yarn-site.xml 中将 yarn.resourcemanager.decommissioning-nodes-watcher.wait-for-applications 的值设置为 false 以解决此问题。

    虽然该修复解决了 YARN-9608 引入的问题,但由于启用了托管扩展的集群上的随机数据丢失,它可能会导致 Hive 作业失败。在此版本中,我们还通过设置 Hive yarn.resourcemanager.decommissioning-nodes-watcher.wait-for-shuffle-data 工作负载来降低这种风险。此配置在 Amazon EMR 版本 6.11.0 及更高版本中提供。

  • 当您使用 Amazon EMR 5.36 或更高版本或 6.6 或更高版本的最新补丁版本启动集群时,Amazon EMR 会使用最新的 Amazon Linux 2 版本作为默认 Amazon EMR AMI。如需更多信息,请参阅 Using the default Amazon Linux AMI for Amazon EMR

    注意

    此版本不再获得 AMI 自动更新,因为它已被另外 1 个补丁版本取代。补丁版本以第二位小数点后的数字 (6.8.1) 表示。要查看您是否使用的是最新补丁版本,请查看 Release Guide 中的可用版本,或者在控制台中创建集群时查看 Amazon EMR 版本下拉列表,或使用 ListReleaseLabels API 或 list-release-labels CLI 操作。要获取有关新版本的更新,请订阅新增功能页面上的 RSS 源。

    OsReleaseLabel(Amazon Linux 版本) Amazon Linux 内核版本 可用日期 支持的区域
    2.0.20230727.0 4.14.320 2023 年 8 月 14 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)、以色列(特拉维夫)
    2.0.20230719.0 4.14.320 2023 年 8 月 2 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)、以色列(特拉维夫)
    2.0.20230628.0 4.14.318 2023 年 7 月 12 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(米兰)、欧洲(西班牙)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)
    2.0.20230612.0 4.14.314 2023 年 6 月 23 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(米兰)、欧洲(西班牙)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)
    2.0.20230504.1 4.14.313 2023 年 5 月 16 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)

版本 6.10.0

以下发布说明包括有关 Amazon EMR 版本 6.10.0 的信息。更改与 6.9.0 有关。有关发布时间表的信息,请参阅更改日志

新特征
  • Amazon EMR 6.10.0 支持 Apache Spark 3.3.1、Apache Spark RAPIDS 22.12.0、CUDA 11.8.0、Apache Hudi 0.12.2-amzn-0、Apache Iceberg 1.1.0-amzn-0、Trino 403 和 PrestoDB 0.278.1。

  • Amazon EMR 6.10.0 包含原生 Trino-Hudi 连接器,可提供对 Hudi 表中数据的读取权限。您可以使用 trino-cli --catalog hudi 激活连接器,并使用 trino-connector-hudi 配置连接器以满足您的要求。与 Amazon EMR 的原生集成意味着您不再需要使用 trino-connector-hive 来查询 Hudi 表。有关新连接器支持的配置列表,请参阅 Trino 文档的 Hudi connector 页面。

  • Amazon EMR 版本 6.10.0 及更高版本支持 Apache Zeppelin 与 Apache Flink 集成。参阅 在 Amazon EMR 中通过 Zeppelin 使用 Flink 作业 了解更多信息。

已知问题
  • Hadoop 3.3.3 在 YARN(YARN-9608)中引入了一项更改,即在应用程序完成之前,容器运行所在的节点一直处于停用状态。此更改可确保如随机数据等本地数据不会丢失,并且您无需重新运行作业。无论是否启用托管扩展,这种方法还可能导致集群的资源利用不足。

    要在 Amazon EMR 6.10.0 中解决此问题,您可以在 yarn-site.xml 中将 yarn.resourcemanager.decommissioning-nodes-watcher.wait-for-applications 的值设置为 false。在 Amazon EMR 版本 6.11.0 及更高版本以及 6.8.1、6.9.1 和 6.10.1 中,默认将配置设置为 false 以解决此问题。

更改、增强功能和解决的问题
  • Amazon EMR 6.10.0 消除了对适用于 Apache Spark 的 Amazon Redshift 集成minimal-json.jar 依赖,并自动将所需的 Spark-Redshift 相关 jar 添加到 Spark 的执行程序类路径中:spark-redshift.jarspark-avro.jarRedshiftJDBC.jar

  • 6.10.0 版本改进了集群上日志管理进程守护程序,以监控 EMR 集群中的其他日志文件夹。这一改进最大限度地减少了磁盘过度使用情况。

  • 6.10.0 版本在集群上日志管理进程守护程序停止后会自动重启该守护程序。这一改进降低了由于磁盘过度使用而导致节点出现运行状况不佳的风险。

  • Amazon EMR 6.10.0 支持 EMRFS 用户映射的区域端点。

  • Amazon EMR 6.10.0 及更高版本的默认根卷大小已增加到 15 GB。早期版本的默认根卷大小为 10 GB。

  • 6.10.0 版本修复了当所有剩余的 Spark 执行程序都位于使用 YARN 资源管理器的停用主机上时,导致 Spark 作业停滞的问题。

  • 在 6.6.0 到 6.9.x 版 Amazon EMR 中,带有动态分区和 ORDER BY 或 SORT BY 子句的 INSERT 查询将始终具有两个 Reducer。此问题是由于 OSS 更改 HIVE-20703 所致,该更改将动态排序分区优化置于基于成本的决策之下。如果您的工作负载不需要对动态分区进行排序,建议将 hive.optimize.sort.dynamic.partition.threshold 属性设置为 -1 以禁用新功能并获得计算正确的 Reducer 数量。此问题已作为 HIVE-22269 的一部分在 OSS Hive 中修复,并已在 Amazon EMR 6.10.0 中修复。

  • 当您使用 Amazon EMR 5.36 或更高版本或 6.6 或更高版本的最新补丁版本启动集群时,Amazon EMR 会使用最新的 Amazon Linux 2 版本作为默认 Amazon EMR AMI。如需更多信息,请参阅 Using the default Amazon Linux AMI for Amazon EMR

    注意

    此版本不再获得 AMI 自动更新,因为它已被另外 1 个补丁版本取代。补丁版本以第二位小数点后的数字 (6.8.1) 表示。要查看您是否使用的是最新补丁版本,请查看 Release Guide 中的可用版本,或者在控制台中创建集群时查看 Amazon EMR 版本下拉列表,或使用 ListReleaseLabels API 或 list-release-labels CLI 操作。要获取有关新版本的更新,请订阅新增功能页面上的 RSS 源。

    OsReleaseLabel(Amazon Linux 版本) Amazon Linux 内核版本 可用日期 支持的区域
    2.0.20230727.0 4.14.320 2023 年 8 月 14 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)、以色列(特拉维夫)
    2.0.20230719.0 4.14.320 2023 年 8 月 2 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)、以色列(特拉维夫)
    2.0.20230628.0 4.14.318 2023 年 7 月 12 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(米兰)、欧洲(西班牙)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)
    2.0.20230612.0 4.14.314 2023 年 6 月 23 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(米兰)、欧洲(西班牙)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)
    2.0.20230504.1 4.14.313 2023 年 5 月 16 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(米兰)、欧洲(西班牙)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)
    2.0.20230418.0 4.14.311 2023 年 5 月 3 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(米兰)、欧洲(西班牙)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)
    2.0.20230404.1 4.14.311 2023 年 4 月 18 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)
    2.0.20230404.0 4.14.311 2023 年 4 月 10 日 美国东部(弗吉尼亚州北部)、欧洲地区(巴黎)
    2.0.20230320.0 4.14.309 2023 年 3 月 30 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)
    2.0.20230207.0 4.14.304 2023 年 2 月 22 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)

发行版 6.9.0

以下发布说明包括有关 Amazon EMR 发行版 6.9.0 的信息。更改与 Amazon EMR 发行版 6.8.0 有关。有关发布时间表的信息,请参阅更改日志

新功能
  • Amazon EMR 发行版 6.9.0 支持 Apache Spark RAPIDS 22.08.0、Apache Hudi 0.12.1、Apache Iceberg 0.14.1、Trino 398 和 Tez 0.10.2。

  • Amazon EMR 发行版 6.9.0 包括一个新的开源应用程序,Delta Lake 2.1.0。

  • Amazon EMR 发行版 6.9.0 及更高版本包含适用于 Apache Spark 的 Amazon Redshift 集成。本地集成之前是一种开源工具,现在是 Spark 连接器,您可以将其用于构建 Apache Spark 应用程序,这些应用程序可在 Amazon Redshift 和 Amazon Redshift Serverless 中读取和写入数据。有关更多信息,请参阅将适用于 Apache Spark 的 Amazon Redshift 集成与 Amazon EMR 结合使用

  • Amazon EMR 发行版 6.9.0 增加了对在集群缩减期间将日志存档到 Amazon S3 的支持。之前,您只能在集群终止期间将日志文件存档到 Amazon S3。这项新功能可确保即使在节点终止后,集群上生成的日志文件仍保留在 Amazon S3 上。有关更多信息,请参阅配置集群日志记录和调试

  • 为了支持长时间运行的查询,Trino 现在包括容错执行机制。容错执行通过重试失败的查询或其组件任务来减少查询失败。有关更多信息,请参阅Trino 中的容错执行

  • 您可以在 Amazon EMR 上使用 Apache Flink 对 Apache Hive 表或任何 Flink 表源(例如 Iceberg、Kinesis 或 Kafka)的元数据进行统一的 BATCHSTREAM 处理。您可以使用 Amazon Web Services Management Console、Amazon CLI 或 Amazon EMR API 指定 Amazon Glue 数据目录作为 Flink 的元存储。有关更多信息,请参阅在 Amazon EMR 中配置 Flink

  • 现在,您可以在 EC2 集群上的 Amazon EMR 上使用 Amazon SageMaker Studio,为 Apache Spark、Apache Hive 和 Presto 查询指定 Amazon Identity and Access Management(IAM)运行时角色和基于 Amazon Lake Formation 的访问控制。有关更多信息,请参阅为 Amazon EMR 步骤配置运行时角色

已知问题
  • 对于 Amazon EMR 发行版 6.9.0,Trino 不适用于为 Apache Ranger 启用的集群。如果您需要将 Trino 与 Ranger 结合使用,请联系 Amazon Web Services Support

  • 如果您使用适用于 Apache Spark 的 Amazon Redshift 集成,并且具有 Parquet 格式的时间、timetz、时间戳或 timestamptz(精度为微秒),连接器会将时间值舍入为最接近的毫秒值。解决方法是使用文本卸载格式 unload_s3_format 参数。

  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

  • 从 Amazon SageMaker Studio 连接到 Amazon EMR 集群可能会间歇性失败,并显示 403 Forbidden(403 禁止访问)响应代码。如果在集群上设置 IAM 角色的时间超过 60 秒,就会发生此错误。解决方法是安装 Amazon EMR 补丁以启用重试,并将超时增加到至少 300 秒。启动集群时,按照以下步骤应用引导操作。

    1. 使用以下 Amazon S3 URI 下载引导脚本和 RPM 文件。

      s3://emr-data-access-control-us-east-1/customer-bootstrap-actions/gcsc/replace-rpms.sh s3://emr-data-access-control-us-east-1/customer-bootstrap-actions/gcsc/emr-secret-agent-1.18.0-SNAPSHOT20221121212949.noarch.rpm
    2. 将上一步中的文件上传到您自己的 Amazon S3 存储桶中。存储桶必须位于您计划启动集群的同一 Amazon Web Services 区域。

    3. 启动集群时,执行以下引导操作。将 bootstrap_URIRPM_URI 替换为来自 Amazon S3 的相应 URI。

      --bootstrap-actions "Path=bootstrap_URI,Args=[RPM_URI]"
  • 在 Amazon EMR 发行版 5.36.0 和 6.6.0 到 6.9.0 中,SecretAgentRecordServer 服务组件可能会因为 Log4j2 属性中的文件名模式配置不正确而出现日志数据丢失的情况。错误的配置导致组件每天只生成一个日志文件。当应用轮换策略时,它会重写现有文件,而不是按预期生成新的日志文件。应变方法是使用引导操作每小时生成一次日志文件,并在文件名中附加一个自动增量的整数来处理轮换。

    对于 Amazon EMR 发行版 6.6.0 到 6.9.0,启动集群时,请执行以下引导操作。

    ‑‑bootstrap‑actions "Path=s3://emr-data-access-control-us-east-1/customer-bootstrap-actions/log-rotation-emr-6x/replace-puppet.sh,Args=[]"

    对于 Amazon EMR 发行版 5.36.0,启动集群时,请执行以下引导操作。

    ‑‑bootstrap‑actions "Path=s3://emr-data-access-control-us-east-1/customer-bootstrap-actions/log-rotation-emr-5x/replace-puppet.sh,Args=[]"
  • Apache Flink 提供 Native S3 FileSystem 和 Hadoop FileSystem 连接器,允许应用程序创建 FileSink 并将数据写入 Amazon S3。此 FileSink 失败并出现以下两个异常之一。

    java.lang.UnsupportedOperationException: Recoverable writers on Hadoop are only supported for HDFS
    Caused by: java.lang.NoSuchMethodError: org.apache.hadoop.io.retry.RetryPolicies.retryOtherThanRemoteAndSaslException(Lorg/apache/hadoop/io/retry/RetryPolicy;Ljava/util/Map;)Lorg/apache/hadoop/io/retry/RetryPolicy; at org.apache.hadoop.yarn.client.RMProxy.createRetryPolicy(RMProxy.java:302) ~[hadoop-yarn-common-3.3.3-amzn-0.jar:?]

    解决方法是安装 Amazon EMR 补丁,该补丁可以修复 Flink 中的上述问题。要在启动集群时应用引导操作,请完成以下步骤。

    1. flink-rpm 下载到 Amazon S3 存储桶中。您的 RPM 路径是 s3://DOC-EXAMPLE-BUCKET/rpms/flink/

    2. 使用以下 URI 从 Amazon S3 下载引导脚本和 RPM 文件。将 regionName 替换为您计划启动集群的 Amazon Web Services 区域。

      s3://emr-data-access-control-regionName/customer-bootstrap-actions/gcsc/replace-rpms.sh
    3. Hadoop 3.3.3 在 YARN(YARN-9608)中引入了一项更改,即在应用程序完成之前,容器运行所在的节点一直处于停用状态。此更改可确保如随机数据等本地数据不会丢失,并且您无需重新运行作业。在 Amazon EMR 6.8.0 和 6.9.0 中,无论是否启用托管扩展,这种方法还可能导致集群的资源利用不足。

      Amazon EMR 6.10.0 中,有一个解决此问题的方法,可以在 yarn-site.xml 中将 yarn.resourcemanager.decommissioning-nodes-watcher.wait-for-applications 的值设置为 false。在 Amazon EMR 版本 6.11.0 及更高版本以及 6.8.1、6.9.1 和 6.10.1 中,默认将配置设置为 false 以解决此问题。

更改、增强和解决的问题
  • 对于 Amazon EMR 发行版 6.9.0 及更高版本,Amazon EMR 安装的所有使用 Log4j 库的组件都使用 Log4j 版本 2.17.1 或更高版本。

  • 在 Amazon EMR 版本 6.6.0、6.7.0 和 6.8.0 上将 DynamoDB 连接器与 Spark 结合使用时,即使输入拆分引用了非空数据,表中的所有读取都会返回空结果。Amazon EMR 发行版 6.9.0 修复了此问题。

  • 在使用 Spark SQL 读取数据时,Amazon EMR 6.9.0 添加对基于 Lake Formation 的访问控制及 Apache Hudi 的有限支持。支持针对使用 Spark SQL 的 SELECT 查询,并且仅限于列级访问控制。有关更多信息,请参阅 Hudi 和 Lake Formation

  • 当您使用 Amazon EMR 6.9.0 创建启用了节点标签的 Hadoop 集群时,YARN 指标 API 会返回所有分区的聚合信息,而不是默认分区。有关更多信息,请参阅 YARN-11414

  • 在 Amazon EMR 6.9.0 版本中,我们已将 Trino 更新到使用 Java 17 的 398 版本。之前支持的 Amazon EMR 6.8.0 Trino 版本是在 Java 11 上运行的 Trino 388。有关此变更的更多信息,请参阅 Trino 博客上的 Trino updates to Java 17

  • 此版本修复了 Apache BigTop 和 EC2 集群启动序列上的 Amazon EMR 之间的时间序列不匹配的问题。当系统尝试同时执行两个或多个操作而不是按正确的顺序执行它们时,就会发生这种计时序列不匹配。因此,某些集群配置会遇到实例启动超时和较慢的集群启动时间。

  • 当您使用 Amazon EMR 5.36 或更高版本或 6.6 或更高版本的最新补丁版本启动集群时,Amazon EMR 会使用最新的 Amazon Linux 2 版本作为默认 Amazon EMR AMI。如需更多信息,请参阅 Using the default Amazon Linux AMI for Amazon EMR

    注意

    此版本不再获得 AMI 自动更新,因为它已被另外 1 个补丁版本取代。补丁版本以第二位小数点后的数字 (6.8.1) 表示。要查看您是否使用的是最新补丁版本,请查看 Release Guide 中的可用版本,或者在控制台中创建集群时查看 Amazon EMR 版本下拉列表,或使用 ListReleaseLabels API 或 list-release-labels CLI 操作。要获取有关新版本的更新,请订阅新增功能页面上的 RSS 源。

    OsReleaseLabel(Amazon Linux 版本) Amazon Linux 内核版本 可用日期 支持的区域
    2.0.20230727.0 4.14.320 2023 年 8 月 14 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)、以色列(特拉维夫)
    2.0.20230719.0 4.14.320 2023 年 8 月 2 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)、以色列(特拉维夫)
    2.0.20230628.0 4.14.318 2023 年 7 月 12 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230612.0 4.14.314 2023 年 6 月 23 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230504.1 4.14.313 2023 年 5 月 16 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230418.0 4.14.311 2023 年 5 月 3 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230404.1 4.14.311 2023 年 4 月 18 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230404.0 4.14.311 2023 年 4 月 10 日 美国东部(弗吉尼亚州北部)、欧洲地区(巴黎)
    2.0.20230320.0 4.14.309 2023 年 3 月 30 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230307.0 4.14.305 2023 年 3 月 15 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230207.0 4.14.304 2023 年 2 月 22 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20221210.1 4.14.301 2023 年 1 月 12 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20221103.3 4.14.296 2022 年 12 月 5 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)

发行版 6.8.0

以下发布说明包括有关 Amazon EMR 发行版 6.8.0 的信息。更改与 6.7.0 有关。

新功能
  • Amazon EMR 步骤功能现支持 Livy 端点和 JDBC/ODBC 客户端。有关更多信息,请参阅为 Amazon EMR 步骤配置运行时角色

  • Amazon EMR 发行版 6.8.0 随附 Apache HBase 发行版 2.4.12。借助此 HBase 发行版,您可以对 HBase 表进行存档和删除。Amazon S3 存档过程会将所有表文件重命名为存档目录。这一过程成本高昂且时间较长。现在,您可以跳过存档过程,快速删除大型表。有关更多信息,请参阅使用 HBase shell

已知问题
  • Hadoop 3.3.3 在 YARN(YARN-9608)中引入了一项更改,即在应用程序完成之前,容器运行所在的节点一直处于停用状态。此更改可确保如随机数据等本地数据不会丢失,并且您无需重新运行作业。在 Amazon EMR 6.8.0 和 6.9.0 中,无论是否启用托管扩展,这种方法还可能导致集群的资源利用不足。

    Amazon EMR 6.10.0 中,有一个解决此问题的方法,可以在 yarn-site.xml 中将 yarn.resourcemanager.decommissioning-nodes-watcher.wait-for-applications 的值设置为 false。在 Amazon EMR 版本 6.11.0 及更高版本以及 6.8.1、6.9.1 和 6.10.1 中,默认将配置设置为 false 以解决此问题。

更改、增强和解决的问题
  • 当 Amazon EMR 发行版 6.5.0、6.6.0 或 6.7.0 通过 Apache Spark Shell 读取 Apache Phoenix 表时,Amazon EMR 会生成 NoSuchMethodError。Amazon EMR 发行版 6.8.0 修复了此问题。

  • Amazon EMR 发行版 6.8.0 随附 Apache Hudi 0.11.1;但是,Amazon EMR 6.8.0 集群也与 Hudi 0.12.0 中的开源 hudi-spark3.3-bundle_2.12 兼容。

  • 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.36 或更高版本或 6.6 或更高版本的最新补丁版本启动集群时,Amazon EMR 会使用最新的 Amazon Linux 2 版本作为默认 Amazon EMR AMI。如需更多信息,请参阅 Using the default Amazon Linux AMI for Amazon EMR

    注意

    此版本不再获得 AMI 自动更新,因为它已被另外 1 个补丁版本取代。补丁版本以第二位小数点后的数字 (6.8.1) 表示。要查看您是否使用的是最新补丁版本,请查看 Release Guide 中的可用版本,或者在控制台中创建集群时查看 Amazon EMR 版本下拉列表,或使用 ListReleaseLabels API 或 list-release-labels CLI 操作。要获取有关新版本的更新,请订阅新增功能页面上的 RSS 源。

    OsReleaseLabel(Amazon Linux 版本) Amazon Linux 内核版本 可用日期 支持的区域
    2.0.20230727.0 4.14.320 2023 年 8 月 14 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、加拿大(中部)、
    2.0.20230719.0 4.14.320 2023 年 8 月 2 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、亚太地区(墨尔本)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)
    2.0.20230628.0 4.14.318 2023 年 7 月 12 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230612.0 4.14.314 2023 年 6 月 23 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230504.1 4.14.313 2023 年 5 月 16 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230418.0 4.14.311 2023 年 5 月 3 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230404.1 4.14.311 2023 年 4 月 18 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230404.0 4.14.311 2023 年 4 月 10 日 美国东部(弗吉尼亚州北部)、欧洲地区(巴黎)
    2.0.20230320.0 4.14.309 2023 年 3 月 30 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230307.0 4.14.305 2023 年 3 月 15 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230207.0 4.14.304 2023 年 2 月 22 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230119.1 4.14.301 2023 年 2 月 3 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20221210.1 4.14.301 2023 年 12 月 22 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20221103.3 4.14.296 2022 年 12 月 5 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20221004.0 4.14.294 2022 年 11 月 2 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20220912.1 4.14.291 2022 年 9 月 6 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
已知问题
  • 在 Amazon EMR 版本 6.6.0、6.7.0 和 6.8.0 上将 DynamoDB 连接器与 Spark 结合使用时,即使输入拆分引用了非空数据,表中的所有读取都会返回空结果。这是因为 Spark 3.2.0 将 spark.hadoopRDD.ignoreEmptySplits 默认设置为 true。解决方法是将 spark.hadoopRDD.ignoreEmptySplits 显式设置为 false。Amazon EMR 发行版 6.9.0 修复了此问题。

  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

  • 在 Amazon EMR 发行版 5.36.0 和 6.6.0 到 6.9.0 中,SecretAgentRecordServer 服务组件可能会因为 Log4j2 属性中的文件名模式配置不正确而出现日志数据丢失的情况。错误的配置导致组件每天只生成一个日志文件。当应用轮换策略时,它会重写现有文件,而不是按预期生成新的日志文件。应变方法是使用引导操作每小时生成一次日志文件,并在文件名中附加一个自动增量的整数来处理轮换。

    对于 Amazon EMR 发行版 6.6.0 到 6.9.0,启动集群时,请执行以下引导操作。

    ‑‑bootstrap‑actions "Path=s3://emr-data-access-control-us-east-1/customer-bootstrap-actions/log-rotation-emr-6x/replace-puppet.sh,Args=[]"

    对于 Amazon EMR 发行版 5.36.0,启动集群时,请执行以下引导操作。

    ‑‑bootstrap‑actions "Path=s3://emr-data-access-control-us-east-1/customer-bootstrap-actions/log-rotation-emr-5x/replace-puppet.sh,Args=[]"

有关发布时间表的更多信息,请参阅更改日志

发行版 6.7.0

以下发布说明包括有关 Amazon EMR 发行版 6.7.0 的信息。更改与 6.6.0 有关。

首次发布日期:2022 年 7 月 15 日

新功能
  • Amazon EMR 现在支持 Apache Spark 3.2.1、Apache Hive 3.1.3、HUDI 0.11、PrestoDB 0.272 和 Trino 0.378。

  • 通过 EMR 步骤(Spark、Hive)支持 EC2 集群上的 Amazon EMR 基于 IAM 角色和 Lake Formation 的访问控制。

  • 在启用 Apache Ranger 的集群上支持 Apache Spark 数据定义语句。现在,这包括支持 Trino 应用程序在启用 Apache Ranger 的集群上读取和写入 Apache Hive 元数据。有关更多信息,请参阅在 Amazon EMR 上使用 Trino 和 Apache Ranger 启用联合治理

  • 当您使用 Amazon EMR 5.36 或更高版本或 6.6 或更高版本的最新补丁版本启动集群时,Amazon EMR 会使用最新的 Amazon Linux 2 版本作为默认 Amazon EMR AMI。如需更多信息,请参阅 Using the default Amazon Linux AMI for Amazon EMR

    OsReleaseLabel(Amazon Linux 版本) Amazon Linux 内核版本 可用日期 支持的区域
    2.0.20230727.0 4.14.320 2023 年 8 月 14 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、加拿大(中部)
    2.0.20230719.0 4.14.320 2023 年 8 月 2 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)
    2.0.20230628.0 4.14.318 2023 年 7 月 12 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230612.0 4.14.314 2023 年 6 月 23 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230504.1 4.14.313 2023 年 5 月 16 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230418.0 4.14.311 2023 年 5 月 3 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230404.1 4.14.311 2023 年 4 月 18 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230404.0 4.14.311 2023 年 4 月 10 日 美国东部(弗吉尼亚州北部)、欧洲地区(巴黎)
    2.0.20230320.0 4.14.309 2023 年 3 月 30 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230307.0 4.14.305 2023 年 3 月 15 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230207.0 4.14.304 2023 年 2 月 22 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230119.1 4.14.301 2023 年 2 月 3 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20221210.1 4.14.301 2023 年 12 月 22 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20221103.3 4.14.296 2022 年 12 月 5 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20221004.0 4.14.294 2022 年 11 月 2 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20220912.1 4.14.291 2022 年 10 月 7 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20220719.0 4.14.287 2022 年 8 月 10 日 us‑west‑1, eu‑west‑3, eu‑north‑1, ap‑south‑1, me‑south‑1
    2.0.20220606.1 4.14.281 2022 年 7 月 15 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
已知问题
  • 当 Amazon EMR 版本 6.5.0、6.6.0 或 6.7.0 通过 Apache Spark shell 读取 Apache Phoenix 表时,会出现 NoSuchMethodError,因为 Amazon EMR 使用了不正确的 Hbase.compat.version。Amazon EMR 发行版 6.8.0 修复了此问题。

  • 在 Amazon EMR 版本 6.6.0、6.7.0 和 6.8.0 上将 DynamoDB 连接器与 Spark 结合使用时,即使输入拆分引用了非空数据,表中的所有读取都会返回空结果。这是因为 Spark 3.2.0 将 spark.hadoopRDD.ignoreEmptySplits 默认设置为 true。解决方法是将 spark.hadoopRDD.ignoreEmptySplits 显式设置为 false。Amazon EMR 发行版 6.9.0 修复了此问题。

  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

  • 在 Amazon EMR 发行版 5.36.0 和 6.6.0 到 6.9.0 中,SecretAgentRecordServer 服务组件可能会因为 Log4j2 属性中的文件名模式配置不正确而出现日志数据丢失的情况。错误的配置导致组件每天只生成一个日志文件。当应用轮换策略时,它会重写现有文件,而不是按预期生成新的日志文件。应变方法是使用引导操作每小时生成一次日志文件,并在文件名中附加一个自动增量的整数来处理轮换。

    对于 Amazon EMR 发行版 6.6.0 到 6.9.0,启动集群时,请执行以下引导操作。

    ‑‑bootstrap‑actions "Path=s3://emr-data-access-control-us-east-1/customer-bootstrap-actions/log-rotation-emr-6x/replace-puppet.sh,Args=[]"

    对于 Amazon EMR 发行版 5.36.0,启动集群时,请执行以下引导操作。

    ‑‑bootstrap‑actions "Path=s3://emr-data-access-control-us-east-1/customer-bootstrap-actions/log-rotation-emr-5x/replace-puppet.sh,Args=[]"

发行版 6.6.0

以下发布说明包括有关 Amazon EMR 发行版 6.6.0 的信息。更改与 6.5.0 有关。

首次发布日期:2022 年 5 月 9 日

文档更新日期:2022 年 6 月 15 日

新功能
  • Amazon EMR 6.6 现在支持 Apache Spark 3.2、Apache Spark RAPIDS 22.02、CUDA 11、Apache Hudi 0.10.1、Apache Iceberg 0.13、Trino 0.367 和 PrestoDB 0.267。

  • 当您使用 Amazon EMR 5.36 或更高版本或 6.6 或更高版本的最新补丁版本启动集群时,Amazon EMR 会使用最新的 Amazon Linux 2 版本作为默认 Amazon EMR AMI。如需更多信息,请参阅 Using the default Amazon Linux AMI for Amazon EMR

    OsReleaseLabel(Amazon Linux 版本) Amazon Linux 内核版本 可用日期 支持的区域
    2.0.20230727.0 4.14.320 2023 年 8 月 14 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、加拿大(中部)
    2.0.20230719.0 4.14.320 2023 年 8 月 2 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、欧洲(西班牙)、欧洲地区(法兰克福)、欧洲(苏黎世)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、亚太地区(香港)、亚太地区(孟买)、亚太地区(海得拉巴)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(雅加达)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)、中东(阿联酋)、加拿大(中部)
    2.0.20230628.0 4.14.318 2023 年 7 月 12 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230612.0 4.14.314 2023 年 6 月 23 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230504.1 4.14.313 2023 年 5 月 16 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230418.0 4.14.311 2023 年 5 月 3 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230404.1 4.14.311 2023 年 4 月 18 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230404.0 4.14.311 2023 年 4 月 10 日 美国东部(弗吉尼亚州北部)、欧洲地区(巴黎)
    2.0.20230320.0 4.14.309 2023 年 3 月 30 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230307.0 4.14.305 2023 年 3 月 15 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230207.0 4.14.304 2023 年 2 月 22 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20230119.1 4.14.301 2023 年 2 月 3 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20221210.1 4.14.301 2023 年 12 月 22 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20221103.3 4.14.296 2022 年 12 月 5 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20221004.0 4.14.294 2022 年 11 月 2 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20220912.1 4.14.291 2022 年 10 月 7 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20220805.0 4.14.287 2022 年 8 月 30 日 us‑west‑1
    2.0.20220719.0 4.14.287 2022 年 8 月 10 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20220426.0 4.14.281 2022 年 6 月 10 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
    2.0.20220406.1 4.14.275 2022 年 5 月 2 日 美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、加拿大(中部)、欧洲地区(斯德哥尔摩)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(法兰克福)、欧洲地区(米兰)、亚太地区(香港)、亚太地区(孟买)、亚太地区(雅加达)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、非洲(开普敦)、南美洲(圣保罗)、中东(巴林)
  • 在 Amazon EMR 6.6 及更高版本中,使用 log4J 1.x 和 log4J 2.x 的应用程序将分别升级为使用 log4J 1.2.17(或更高版本)和 log4J 2.17.1(或更高版本),并且不需要使用提供的引导操作来缓解 CVE 问题。

  • [托管式扩展] Spark 随机排序数据托管式扩展优化 – Amazon EMR 5.34.0 及更高版本和 Amazon EMR 6.4.0 及更高版本支持可感知 Spark 随机排序数据(Spark 在分区之间重新分配以执行特定操作的数据)的托管式扩展。有关随机排序操作的更多信息,请参阅《Amazon EMR 管理指南》中的 在 Amazon EMR 中使用 EMR 托管横向缩减Spark 编程指南

  • 从 Amazon EMR 5.32.0 和 6.5.0 开始,Apache Spark 动态执行程序定型功能会默认启用。要打开或关闭此功能,您可以使用 spark.yarn.heterogeneousExecutors.enabled 配置参数。

更改、增强和解决的问题
  • 对于使用 EMR 默认 AMI 选项且仅安装常用应用程序(如 Apache Hadoop、Apache Spark 和 Apache Hive)的集群,Amazon EMR 平均可将启动时间缩短 80 秒。

已知问题
  • 当 Amazon EMR 版本 6.5.0、6.6.0 或 6.7.0 通过 Apache Spark shell 读取 Apache Phoenix 表时,会出现 NoSuchMethodError,因为 Amazon EMR 使用了不正确的 Hbase.compat.version。Amazon EMR 发行版 6.8.0 修复了此问题。

  • 在 Amazon EMR 版本 6.6.0、6.7.0 和 6.8.0 上将 DynamoDB 连接器与 Spark 结合使用时,即使输入拆分引用了非空数据,表中的所有读取都会返回空结果。这是因为 Spark 3.2.0 将 spark.hadoopRDD.ignoreEmptySplits 默认设置为 true。解决方法是将 spark.hadoopRDD.ignoreEmptySplits 显式设置为 false。Amazon EMR 发行版 6.9.0 修复了此问题。

  • 在 Trino 长时间运行的集群上,Amazon EMR 6.6.0 在 Trino jvm.config 中启用了垃圾回收日志记录参数,以便从垃圾回收日志中获取更好的见解。此更改会将许多垃圾回收日志附加到 launcher.log (/var/log/trino/launcher.log) 文件。如果您在 Amazon EMR 6.6.0 中运行 Trino 集群,由于附加的日志,可能会在集群运行几天后出现节点磁盘空间不足的情况。

    这一问题的解决办法是在为 Amazon EMR 6.6.0 创建或克隆集群时,将以下脚本作为引导操作运行以禁用 jvm.config 中的垃圾回收日志记录参数。

    #!/bin/bash set -ex PRESTO_PUPPET_DIR='/var/aws/emr/bigtop-deploy/puppet/modules/trino' sudo bash -c "sed -i '/-Xlog/d' ${PRESTO_PUPPET_DIR}/templates/jvm.config"
  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

  • 在 Amazon EMR 发行版 5.36.0 和 6.6.0 到 6.9.0 中,SecretAgentRecordServer 服务组件可能会因为 Log4j2 属性中的文件名模式配置不正确而出现日志数据丢失的情况。错误的配置导致组件每天只生成一个日志文件。当应用轮换策略时,它会重写现有文件,而不是按预期生成新的日志文件。应变方法是使用引导操作每小时生成一次日志文件,并在文件名中附加一个自动增量的整数来处理轮换。

    对于 Amazon EMR 发行版 6.6.0 到 6.9.0,启动集群时,请执行以下引导操作。

    ‑‑bootstrap‑actions "Path=s3://emr-data-access-control-us-east-1/customer-bootstrap-actions/log-rotation-emr-6x/replace-puppet.sh,Args=[]"

    对于 Amazon EMR 发行版 5.36.0,启动集群时,请执行以下引导操作。

    ‑‑bootstrap‑actions "Path=s3://emr-data-access-control-us-east-1/customer-bootstrap-actions/log-rotation-emr-5x/replace-puppet.sh,Args=[]"

发行版 5.35.0

这是 Amazon EMR 发行版 5.35.0 的发布说明。

以下发布说明包括有关 Amazon EMR 发行版 5.35.0 的信息。更改与 5.34.0 有关。

首次发布日期: 2022 年 3 月 30 日

新功能
  • 使用 log4J 1.x 和 log4J 2.x 的 Amazon EMR 发行版 5.35 应用程序将分别升级为使用 log4J 1.2.17(或更高版本)和 log4J 2.17.1(或更高版本),并且不需要使用引导操作来缓解之前发行版中的 CVE 问题。请参阅 缓解 CVE-2021-44228 的方法

更改、增强和解决的问题

Flink 更改
更改类型 描述
升级
  • 将 Flink 版本更新到 1.14.2。

  • log4j 升级到 2.17.1。

Hadoop 更改
更改类型 描述
自 EMR 5.34.0 以来的 Hadoop 开源逆向移植
  • YARN-10438: 处理 ClientRMService#getContainerReport() 中的空 containerId

  • YARN-7266: 时间轴服务器事件处理程序线程已锁定

  • YARN-10438:如果 RollingLevelDb 文件损坏或丢失,ATS 1.5 将无法开启

  • HADOOP-13500: 同步配置属性对象的迭代

  • YARN-10651: CapacityScheduler 由于 AbstractYarnScheduler.updateNodeResource() 中的 NPE 崩溃

  • HDFS-12221: 替换 XmlEditsVisitor 中的 xerces

  • HDFS-16410: OfflineEditsXmlLoader 中不安全的 Xml 解析

Hadoop 更改和修复
  • KMS 和 HttpFS 中使用的 Tomcat 升级到 8.5.75

  • 在 FileSystemOptimizedCommitterV2 中,成功标记被写入创建提交程序时定义的 commitJob 输出路径。由于 commitJob 和任务级别输出路径可能不同,因此更正路径以使用清单文件中定义的路径。对于 Hive 任务,这会导致在执行动态分区或 UNION ALL 等操作时正确写入成功标记。

Hive 更改
更改类型 描述
Hive 升级到开源发行版 2.3.9,包括这些 JIRA 修复
  • HIVE-17155: HiveConf.java 中的 findConfFile() 存在一些配置路径问题

  • HIVE-24797: 在解析 Avro 架构时禁用验证原定设置值

  • HIVE-21563: 通过禁用 registerAllFunctionsOnce 提升 Table#getEmptyTable 性能

  • HIVE-18147: 测试可能失败,显示 java.net.BindException: 地址已在使用中

  • HIVE-24608: 切换回 Hive 2.3.x HMS 客户端中的 get_table

  • HIVE-21200: 向量化 - 日期列显示 java.lang.UnsupportedOperationException for parquet

  • HIVE-19228: 删除 commons-httpclient 3.x 使用

自 EMR 5.34.0 以来的 Hive 开源逆向移植
  • HIVE-19990: 在联接条件下使用时间间隔文本查询失败

  • HIVE-25824: 将 branch-2.3 升级到 log4j 2.17.0

  • TEZ-4062: 推测性尝试计划应在任务完成时中止

  • TEZ-4108: 在推测性执行竞争条件期间出现 NullPointerException

  • TEZ-3918: 设置项 tez.task.log.level 无效

Hive 升级和修复
  • 将 Log4j 版本升级到 2.17.1

  • 将 ORC 版本升级到 1.4.3

  • 修复了由于 ShuffleScheduler 中的惩罚线程导致的死锁

新特征
  • 添加了在 AM 日志中打印 Hive 查询的功能 默认情况下,将禁用该功能。标记/配置: tez.am.emr.print.hive.query.in.log。状态(原定设置): FALSE。

Oozie 更改
更改类型 描述
自 EMR 5.34.0 以来的 Oozie 开源逆向移植
  • OOZIE-3652: 当发生 NoSuchFileException 时,Oozie 启动器应重试目录列表

Pig 更改
更改类型 描述
升级
  • log4j 升级到 1.2.17。

已知问题
  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

发行版 5.34.0

以下发布说明包括有关 Amazon EMR 发行版 5.34.0 的信息。更改与 5.33.1 有关。

首次发布日期:2022 年 1 月 20 日

发布更新日期:2022 年 3 月 21 日

新功能
  • [托管式扩展] Spark 随机排序数据托管式扩展优化 – Amazon EMR 5.34.0 及更高版本和 Amazon EMR 6.4.0 及更高版本支持可感知 Spark 随机排序数据(Spark 在分区之间重新分配以执行特定操作的数据)的托管式扩展。有关随机排序操作的更多信息,请参阅《Amazon EMR 管理指南》中的 在 Amazon EMR 中使用 EMR 托管扩展Spark 编程指南

  • [Hudi] 简化了 Hudi 配置的改进。预设情况下禁用乐观并发控制。

更改、增强和解决的问题
  • 此版本旨在修复 Amazon EMR Scaling 无法成功纵向扩展/缩减集群或导致应用程序故障时出现的问题。

  • 以前,在多主节点集群上手动重启资源管理器会导致 Zookeeper znode 文件中的 Amazon EMR 集群进程守护程序(如 Zookeeper)重新加载以前停用或丢失的所有节点。在某些情况下,这会导致超出默认限制。Amazon EMR 现在会从 Zookeeper 文件中删除已停用或丢失超过一小时的节点记录,并且内部限制也有所提高。

  • 修复了当 Amazon EMR 集群上的进程守护程序正在进行运行状况检查活动(例如收集 YARN 节点状态和 HDFS 节点状态)时,针对高利用率的大型集群的扩展请求失败的问题。之所以发生这种情况,是因为集群上的进程守护程序无法将节点的运行状况数据传递给内部 Amazon EMR 组件。

  • 改进了 EMR 集群上的进程守护程序,以便在重用 IP 地址时正确跟踪节点状态,从而提高扩缩操作期间的可靠性。

  • SPARK-29683。修复了集群缩减期间出现任务失败的问题,因为 Spark 假定所有可用节点都被拒绝列出。

  • YARN-9011。修复了集群尝试纵向扩展或缩减时,由于 YARN 停用中的争用条件导致任务失败的问题。

  • 通过确保 Amazon EMR 集群上的进程守护程序和 YARN/HDFS 之间的节点状态始终一致,解决了集群扩展期间步骤或任务失败的问题。

  • 修复了已启用 Kerberos 身份验证的 Amazon EMR 集群的诸如缩减和步骤提交等集群操作失败的问题。这是因为 Amazon EMR 集群上的进程守护程序没有续订 Kerberos 票证,而该票证是与主节点上运行的 HDFS/YARN 进行安全通信所必需的。

  • Zeppelin 已升级到版本 0.10.0。

  • Livy 修复 - 已升级到 0.7.1

  • Spark 性能提升 - 当 EMR 5.34.0 中的某些 Spark 配置值被覆盖时禁用异构执行器。

  • 默认情况下禁用 WebHDFS 和 HTTFS 服务器。您可以使用 Hadoop 配置重新启用 WebHDFS,dfs.webhdfs.enabled。HTTPFS 服务器可以通过使用 sudo systemctl start hadoop-httpfs 启动。

已知问题
  • 与 Livy 用户模拟一起使用的 Amazon EMR Notebooks 功能不起作用,因为默认情况下,HTTPFS 处于禁用状态。在这种情况下,EMR 笔记本无法连接到启用了 Livy 模拟的集群。解决方法是在将 EMR 笔记本连接到集群之前使用 sudo systemctl start hadoop-httpfs 启动 HTTPFS 服务器。

  • Hue 查询在 Amazon EMR 6.4.0 中不起作用,因为默认情况下 Apache Hadoop HTTPFS 服务器处于禁用状态。要在 Amazon EMR 6.4.0 上使用 Hue,请使用 sudo systemctl start hadoop-httpfs 在 Amazon EMR 主节点上手动启动 HTTPFS 服务器,或者使用 Amazon EMR 步骤

  • 与 Livy 用户模拟一起使用的 Amazon EMR Notebooks 功能不起作用,因为默认情况下,HTTPFS 处于禁用状态。在这种情况下,EMR 笔记本无法连接到启用了 Livy 模拟的集群。解决方法是在将 EMR 笔记本连接到集群之前使用 sudo systemctl start hadoop-httpfs 启动 HTTPFS 服务器。

  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

发行版 6.5.0

以下发布说明包括有关 Amazon EMR 发行版 6.5.0 的信息。更改与 6.4.0 有关。

首次发布日期:2022 年 1 月 20 日

发布更新日期:2022 年 3 月 21 日

新功能
  • [托管式扩展] Spark 随机排序数据托管式扩展优化 – Amazon EMR 5.34.0 及更高版本和 Amazon EMR 6.4.0 及更高版本支持可感知 Spark 随机排序数据(Spark 在分区之间重新分配以执行特定操作的数据)的托管式扩展。有关随机排序操作的更多信息,请参阅《Amazon EMR 管理指南》中的 在 Amazon EMR 中使用 EMR 托管横向缩减Spark 编程指南

  • 从 Amazon EMR 5.32.0 和 6.5.0 开始,Apache Spark 动态执行程序定型功能会默认启用。要打开或关闭此功能,您可以使用 spark.yarn.heterogeneousExecutors.enabled 配置参数。

  • 支持 Apache Iceberg 开放表格式,用于大型分析数据集。

  • 支持 ranger-trino-plugin 2.0.1-amzn-1

  • 支持 toree 0.5.0

更改、增强和解决的问题
  • Amazon EMR 6.5 发行版现在支持 Apache Iceberg 0.12.0,并通过适用于 Apache Spark 的 Amazon EMR 运行时、适用于 Presto 的 Amazon EMR 运行时和适用于 Apache Hive 的 Amazon EMR 运行时提供了运行时改进。

  • Apache Iceberg 是 Amazon S3 中适用于大型数据集的开放表格式,可提供快速的大型表查询性能、原子提交、并发写入和 SQL 兼容表演进等功能。借助 EMR 6.5,您可以将 Apache Spark 3.1.2 与 Iceberg 表格式结合使用。

  • Apache Hudi 0.9 增加了对 Spark SQL DDL 和 DML 的支持。从而让您可以仅使用 SQL 语句创建 upsert Hudi 表。Apache Hudi 0.9 还包括查询端和写入器端的性能改进。

  • 适用于 Apache Hive 的 Amazon EMR 运行时取消了暂存操作期间的重命名操作,从而提高了 Apache Hive 在 Amazon S3 上的性能,此外还提高了用于修复表的元数据仓检查(MSCK)命令的性能。

已知问题
  • 当 Amazon EMR 版本 6.5.0、6.6.0 或 6.7.0 通过 Apache Spark shell 读取 Apache Phoenix 表时,会出现 NoSuchMethodError,因为 Amazon EMR 使用了不正确的 Hbase.compat.version。Amazon EMR 发行版 6.8.0 修复了此问题。

  • 高可用性(HA)的 Hbase 捆绑集群无法使用默认卷大小和实例类型进行预置。此问题的变通解决方法是增加根卷大小。

  • 要将 Spark 操作与 Apache Oozie 一起使用,必须将以下配置添加到 Oozie workflow.xml 文件中。否则,Oozie 启动的 Spark 执行器的类路径中将丢失几个诸如 Hadoop 和 EMRFS 之类的关键库。

    <spark-opts>--conf spark.yarn.populateHadoopClasspath=true</spark-opts>
  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

发行版 6.4.0

以下发布说明包括有关 Amazon EMR 发行版 6.4.0 的信息。更改与 6.3.0 有关。

首次发布日期:2021 年 9 月 20 日

发布更新日期:2022 年 3 月 21 日

支持的应用程序
  • Amazon SDK for Java 1.12.31

  • CloudWatch Sink 2.2.0

  • DynamoDB 连接器 4.16.0

  • EMRFS 2.47.0

  • Amazon EMR Goodies 3.2.0

  • Amazon EMR Kinesis 连接器 3.5.0

  • Amazon EMR 记录服务器 2.1.0

  • Amazon EMR Scripts 2.5.0

  • Flink 1.13.1

  • Ganglia 3.7.2

  • Amazon Glue Hive Metastore Client 3.3.0

  • Hadoop 3.2.1-amzn-4

  • HBase 2.4.4-amzn-0

  • HBase-operator-tools 1.1.0

  • HCatalog 3.1.2-amzn-5

  • Hive 3.1.2-amzn-5

  • Hudi 0.8.0-amzn-0

  • Hue 4.9.0

  • Java JDK Corretto-8.302.08.1(内部 1.8.0_302-b08)

  • JupyterHub 1.4.1

  • Livy 0.7.1-incubating

  • MXNet 1.8.0

  • Oozie 5.2.1

  • Phoenix 5.1.2

  • Pig 0.17.0

  • Presto 0.254.1-amzn-0

  • Trino 359

  • Apache Ranger KMS(多主节点透明加密)版本 2.0.0

  • ranger-plugins 2.0.1-amzn-0

  • ranger-s3-plugin 1.2.0

  • SageMaker Spark SDK 1.4.1

  • Scala 2.12.10(OpenJDK 64 位服务器 VM,Java 1.8.0_282)

  • Spark 3.1.2-amzn-0

  • spark-rapids 0.4.1

  • Sqoop 1.4.7

  • TensorFlow 2.4.1

  • tez 0.9.2

  • Zeppelin 0.9.0

  • Zookeeper 3.5.7

  • 连接器和驱动程序:DynamoDB 连接器 4.16.0

新特征
  • [托管式扩展] Spark 随机排序数据托管式扩展优化 – Amazon EMR 5.34.0 及更高版本和 Amazon EMR 6.4.0 及更高版本支持可感知 Spark 随机排序数据(Spark 在分区之间重新分配以执行特定操作的数据)的托管式扩展。有关随机排序操作的更多信息,请参阅《Amazon EMR 管理指南》中的 在 Amazon EMR 中使用 EMR 托管扩展Spark 编程指南

  • 在 Apache Ranger 启用的 Amazon EMR 集群上,您可以使用 Apache Spark SQL 将数据插入到 Apache Hive 元数据存储表中或使用INSERT INTOINSERT OVERWRITEALTER TABLE更新 Apache Hive 元数据存储表。将 ALTER TABLE 与 Spark SQL 结合使用时,分区位置必须是表位置的子目录。如果某个分区的分区位置与表位置不同,Amazon EMR 目前不支持将数据插入该分区。

  • PrestoSQL 已重命名为 Trino。

  • Hive:在获取 LIMIT 子句中提到的记录数目后,通过立即停止查询执行可加快使用 LIMIT 子句执行简单 SELECT 查询的速度。简单 SELECT 查询是没有 GROUP BY/ORDER BY 子句的查询或没有减速阶段的查询。例如,SELECT * from <TABLE> WHERE <Condition> LIMIT <Number>

Hudi 并发控制
  • Hudi 目前支持乐观并发控制 (OCC),它可以与 UPSERT 和 INSERT 等写入操作一起利用,以允许从多个写入器更改为同一 Hudi 表。这是文件级 OCC,因此任何两个提交(或写入器)可以写入同一表内,前提是它们的更改不冲突。有关更多信息,请参阅 Hadi 并发性控制

  • Amazon EMR 集群安装了 Zookeeper,可以利用它作为 OCC 的锁提供商。为了更便捷地使用此功能,Amazon EMR 集群预先配置了以下属性:

    hoodie.write.lock.provider=org.apache.hudi.client.transaction.lock.ZookeeperBasedLockProvider hoodie.write.lock.zookeeper.url=<EMR Zookeeper URL> hoodie.write.lock.zookeeper.port=<EMR Zookeeper Port> hoodie.write.lock.zookeeper.base_path=/hudi

    要启用 OCC,您需要使用 Hudi 任务选项或使用 Amazon EMR 配置 API 在集群级别配置以下属性:

    hoodie.write.concurrency.mode=optimistic_concurrency_control hoodie.cleaner.policy.failed.writes=LAZY (Performs cleaning of failed writes lazily instead of inline with every write) hoodie.write.lock.zookeeper.lock_key=<Key to uniquely identify the Hudi table> (Table Name is a good option)
Hudi 监控:Amazon CloudWatch 集成,用于报告 Hudi 指标
  • Amazon EMR 支持向 Amazon CloudWatch 发布 Hudi 指标。通过设置以下所需配置来启用:

    hoodie.metrics.on=true hoodie.metrics.reporter.type=CLOUDWATCH
  • 以下是您可以更改的可选 Hudi 配置:

    设置 描述 Value

    hoodie.metrics.cloudwatch.report.period.seconds

    向 Amazon CloudWatch 报告指标的频率(以秒为单位)

    默认值为 60 秒,对于 Amazon CloudWatch 提供的默认一分钟分辨率而言是可行的

    hoodie.metrics.cloudwatch.metric.prefix

    要添加到每个指标名称的前缀

    默认值为空(无前缀)

    hoodie.metrics.cloudwatch.namespace

    以此为发布指标的 Amazon CloudWatch 命名空间

    默认值为 Hudi

    hoodie.metrics.cloudwatch.maxDatumsPerRequest

    向 Amazon CloudWatch 发出的请求中要包含的最大基准数

    默认值为 20(与 Amazon CloudWatch 默认值相同)

Amazon EMR Hudi 配置的支持和改进
  • 客户目前可以利用 EMR 配置 API 和重新配置功能在集群级别配置 Hudi 配置。与 Spark 和 Hive 等其他应用程序一样,通过 /etc/hudi/CONF/hudi-defaults.conf 引入了基于文件的新配置支持。EMR 配置了几个默认值以改善用户体验:

    hoodie.datasource.hive_sync.jdbcurl 已配置为集群 Hive 服务器 URL,无需指定。这在 Spark 集群模式下运行任务时十分有效,而您之前必须指定 Amazon EMR 主 IP。

    — HBase 特定的配置,这对于将 HBase 索引与 Hudi 一起使用非常有用。

    — Zookeeper 锁提供商的特定配置,如并发控制下所讨论的内容,这令乐观并发控制 (OCC) 的使用更加方便。

  • 还引入了其他更改,以减少需要通过的配置数量,并在可能的情况下自动推断:

    — 该partitionBy 关键字可用于指定分区列。

    — 启用 Hive Sync 时,不再强制通过HIVE_TABLE_OPT_KEY, HIVE_PARTITION_FIELDS_OPT_KEY, HIVE_PARTITION_EXTRACTOR_CLASS_OPT_KEY。这些值可以根据 Hudi 表名称和分区字段推断出来。

    KEYGENERATOR_CLASS_OPT_KEY不强制通过,可以从更简单的SimpleKeyGeneratorComplexKeyGenerator情况下推断。

Hudi 注意事项
  • Hudi 不支持在 Hive 中用于读取时合并 (MoR) 和 Bootstrap 表格中的矢量化执行。例如,当hive.vectorized.execution.enabled设置为 true 时,Hudi 实时表的count(*)失败。作为解决方法,您可以通过将hive.vectorized.execution.enabled设置为false禁用矢量化读入。

  • 多写作器支持与 Hudi 引导启动功能不兼容。

  • Flink Streamer 和 Flink SQL 是此发行版中的实验性功能。建议不要在生产部署中使用这些功能。

更改、增强功能和解决的问题

此版本旨在修复 Amazon EMR Scaling 无法成功纵向扩展/缩减集群或导致应用程序故障时出现的问题。

  • 以前,在多主节点集群上手动重启资源管理器会导致 Zookeeper znode 文件中的 Amazon EMR 集群进程守护程序(如 Zookeeper)重新加载以前停用或丢失的所有节点。在某些情况下,这会导致超出默认限制。Amazon EMR 现在会从 Zookeeper 文件中删除已停用或丢失超过一小时的节点记录,并且内部限制也有所提高。

  • 修复了当 Amazon EMR 集群上的进程守护程序正在进行运行状况检查活动(例如收集 YARN 节点状态和 HDFS 节点状态)时,针对高利用率的大型集群的扩展请求失败的问题。之所以发生这种情况,是因为集群上的进程守护程序无法将节点的运行状况数据传递给内部 Amazon EMR 组件。

  • 改进了 EMR 集群上的进程守护程序,以便在重用 IP 地址时正确跟踪节点状态,从而提高扩缩操作期间的可靠性。

  • SPARK-29683。修复了集群缩减期间出现任务失败的问题,因为 Spark 假定所有可用节点都被拒绝列出。

  • YARN-9011。修复了集群尝试纵向扩展或缩减时,由于 YARN 停用中的争用条件导致任务失败的问题。

  • 通过确保 Amazon EMR 集群上的进程守护程序和 YARN/HDFS 之间的节点状态始终一致,解决了集群扩展期间步骤或任务失败的问题。

  • 修复了已启用 Kerberos 身份验证的 Amazon EMR 集群的诸如缩减和步骤提交等集群操作失败的问题。这是因为 Amazon EMR 集群上的进程守护程序没有续订 Kerberos 票证,而该票证是与主节点上运行的 HDFS/YARN 进行安全通信所必需的。

  • 配置集群以修复 Apache YARN 时间轴服务器 1 和 1.5 版的性能问题

    Apache YARN 时间轴服务器版本 1 和 1.5 可能会对非常活跃的大型 EMR 集群造成性能问题,尤其是 yarn.resourcemanager.system-metrics-publisher.enabled=true,这是 Amazon EMR 中的默认设置。开源 YARN 时间轴服务器 v2 解决了与 YARN 时间轴服务器可扩展性相关的性能问题。

    此问题的其他解决方法包括:

    • 配置 yarn.资源管理器.系统指标-发布者.启用=false 在 yarn-site.xml 中。

    • 如下所述,在创建群集时启用此问题的修复程序。

    以下 Amazon EMR 发行版包含针对此 YARN 时间线服务器性能问题的修复。

    EMR 5.30.2、5.31.1、5.32.1、5.33.1、5.34.x、6.0.1、6.1.1、6.2.1、6.3.1、6.4.x

    要对上述任何指定的 Amazon EMR 版本启用修复程序,请使用 aws emr create-cluster 命令参数--configurations file://./configurations.json 在传入的配置 JSON 文件中将这些属性设置为 true。或者使用重新配置控制台 UI 启用修复程序。

    配置 .json 文件内容的示例:

    [ { "Classification": "yarn-site", "Properties": { "yarn.resourcemanager.system-metrics-publisher.timeline-server-v1.enable-batch": "true", "yarn.resourcemanager.system-metrics-publisher.enabled": "true" }, "Configurations": [] } ]
  • 默认情况下禁用 WebHDFS 和 HTTFS 服务器。您可以使用 Hadoop 配置重新启用 WebHDFS,dfs.webhdfs.enabled。HTTPFS 服务器可以通过使用 sudo systemctl start hadoop-httpfs 启动。

  • 现在,默认情况下,已启用 Amazon Linux 存储库的 HTTPS。如果您使用 Amazon S3 VPCE 策略限制对特定存储桶的访问,则必须添加新的 Amazon Linux 存储桶 ARNarn:aws:s3:::amazonlinux-2-repos-$region/*到策略(将$region替换为终端节点所在的区域)。有关更多信息,请参阅 Amazon 讨论论坛的主题。公告:Amazon Linux 2 目前支持在连接到软件包存储库时使用 HTTPS 的功能

  • Hive:为最后任务,通过启用 HDFS 上的 scratch 目录,从而提高写入查询性能。最终任务的临时数据可写入 HDFS 而不是 Amazon S3,性能可以得到提高,因为数据从 HDFS 移动到最终表位置 (Amazon S3) 而不是在 Amazon S3 设备之间移动。

  • Hive:使用 Glue 元存储分区修剪,查询编译时间最多可缩短 2.5 倍。

  • 默认情况下,当 Hive 将内置 UDF 传递到 Hive 元存储服务器时,由于 Glue 只支持有限的表达式运算,所以只会将这些内置 UDF 的子集传递到 Glue 元存储。如果您设置hive.glue.partition.pruning.client=true,则所有分区修剪发生在客户端。如果您设置hive.glue.partition.pruning.server=true,则所有分区修剪发生在服务器端。

已知问题
  • Hue 查询在 Amazon EMR 6.4.0 中不起作用,因为默认情况下 Apache Hadoop HTTPFS 服务器处于禁用状态。要在 Amazon EMR 6.4.0 上使用 Hue,请使用 sudo systemctl start hadoop-httpfs 在 Amazon EMR 主节点上手动启动 HTTPFS 服务器,或者使用 Amazon EMR 步骤

  • 与 Livy 用户模拟一起使用的 Amazon EMR Notebooks 功能不起作用,因为默认情况下,HTTPFS 处于禁用状态。在这种情况下,EMR 笔记本无法连接到启用了 Livy 模拟的集群。解决方法是在将 EMR 笔记本连接到集群之前使用 sudo systemctl start hadoop-httpfs 启动 HTTPFS 服务器。

  • 在 Amazon EMR 6.4.0 版本中,Phoenix 不支持 Phoenix 连接器组件。

  • 要将 Spark 操作与 Apache Oozie 一起使用,必须将以下配置添加到 Oozie workflow.xml 文件中。否则,Oozie 启动的 Spark 执行器的类路径中将丢失几个诸如 Hadoop 和 EMRFS 之类的关键库。

    <spark-opts>--conf spark.yarn.populateHadoopClasspath=true</spark-opts>
  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

发行版 5.32.0

以下发布说明包括有关 Amazon EMR 发行版 5.32.0 的信息。更改与 5.31.0 有关。

首次发布日期:2021 年 1 月 8 日

升级
  • 已将 Amazon Glue 连接器升级到1.14.0

  • 已将 Amazon SageMaker Spark SDK 升级到版本 1.4.1

  • 已将 Amazon SDK for Java 升级到版本 1.11.890

  • 已将 EMR DynamoDB 连接器升级到版本 4.16.0

  • 已将 EMRFS 升级到版本 2.45.0

  • 已将 EMR Log Analytics Metrics 升级到版本 1.18.0

  • 已将 EMR MetricsAndEventsApiGateway 客户端升级到版本 1.5.0

  • 已将 EMR 记录服务器升级到版本 1.8.0

  • 已将 EMR S3 Dist CP 升级到版本 2.17.0

  • 已将 EMR Secret Agent 升级到版本 1.7.0

  • 已将 Flink 升级到版本 1.11.2

  • 已将 Hadoop 升级到版本 2.10.1-amzn-0

  • 已将 Hive 升级到版本 2.3.7-amzn-3

  • 已将 Hue 升级到版本 4.8.0

  • 已将 Mxnet 升级到版本 1.7.0

  • 已将 OpenCV 升级到版本 4.4.0

  • 已将 Presto 升级到版本 0.240.1-amzn-0

  • 已将 Spark 升级到版本 2.4.7-amzn-0

  • 已将 TensorFlow 升级到版本 2.3.1

更改、增强功能和解决的问题
  • 此版本旨在修复 Amazon EMR Scaling 无法成功纵向扩展/缩减集群或导致应用程序故障时出现的问题。

  • 修复了当 Amazon EMR 集群上的进程守护程序正在进行运行状况检查活动(例如收集 YARN 节点状态和 HDFS 节点状态)时,针对高利用率的大型集群的扩展请求失败的问题。之所以发生这种情况,是因为集群上的进程守护程序无法将节点的运行状况数据传递给内部 Amazon EMR 组件。

  • 改进了 EMR 集群上的进程守护程序,以便在重用 IP 地址时正确跟踪节点状态,从而提高扩缩操作期间的可靠性。

  • SPARK-29683。修复了集群缩减期间出现任务失败的问题,因为 Spark 假定所有可用节点都被拒绝列出。

  • YARN-9011。修复了集群尝试纵向扩展或缩减时,由于 YARN 停用中的争用条件导致任务失败的问题。

  • 通过确保 Amazon EMR 集群上的进程守护程序和 YARN/HDFS 之间的节点状态始终一致,解决了集群扩展期间步骤或任务失败的问题。

  • 修复了已启用 Kerberos 身份验证的 Amazon EMR 集群的诸如缩减和步骤提交等集群操作失败的问题。这是因为 Amazon EMR 集群上的进程守护程序没有续订 Kerberos 票证,而该票证是与主节点上运行的 HDFS/YARN 进行安全通信所必需的。

  • 较新的 Amazon EMR 发行版修复了 Amazon EMR 中较早版本的 AL2 上“最大打开文件数”限制较低的问题。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本现在用更高的“最大打开文件数”设置永久修复了此问题。

  • 升级了组件版本。

  • 有关组件版本的列表,请参阅本指南中的关于 Amazon EMR 发行版

新特征
  • 从 Amazon EMR 5.32.0 和 6.5.0 开始,Apache Spark 动态执行程序定型功能会默认启用。要打开或关闭此功能,您可以使用 spark.yarn.heterogeneousExecutors.enabled 配置参数。

  • 实例元数据服务(IMDS)V2 支持状态:Amazon EMR 5.23.1、5.27.1 和 5.32 或更高版本的组件对所有 IMDS 调用都使用 IMDSv2。对于应用程序代码中的 IMDS 调用,您可以同时使用 IMDSv1 和 IMDSv2,或者将 IMDS 配置为仅使用 IMDSv2,以提高安全性。对于其它 5.x EMR 版本,禁用 IMDSv1 会导致集群启动失败。

  • 从 Amazon EMR 5.32.0 开始,您可以启动与 Apache Ranger 在本地集成的集群。Apache Ranger 是一个开源框架,可跨 Hadoop 平台启用、监控和管理全面的数据安全。有关更多信息,请参阅 Apache Ranger。通过本机集成,您可以自带 Apache Ranger,在 Amazon EMR 上强制实施精细数据访问控制。请参阅《Amazon EMR 版本指南》中的 将 Amazon EMR 与 Apache Ranger 集成

  • Amazon EMR 发行版 5.32.0 支持 Amazon EMR on EKS。有关 EMR on EKS 入门的更多详细信息,请参阅什么是 Amazon EMR on EKS

  • Amazon EMR 发行版 5.32.0 版支持 Amazon EMR Studio(预览版)。有关 EMR Studio 入门的更多详细信息,请参阅 Amazon EMR Studio(预览版)

  • 限定范围的托管式策略:为了符合Amazon最佳实践,Amazon EMR 引入了 v2 EMR 范围的默认托管式策略,来替代即将弃用的策略。请参阅 Amazon EMR 托管式策略

已知问题
  • 对于 Amazon EMR 6.3.0 和 6.2.0 私有子网集群,您不能访问 Ganglia Web UI。您将收到“access denied (403)”错误。其它 Web UI(如 Spark、Hue、JupyterHub、Zeppelin、Livy 和 Tez)可正常运行。公有子网集群上的 Ganglia Web UI 访问也正常工作。要解决该问题,请在具有 sudo systemctl restart httpd 的主节点上重新启动 httpd 服务。此问题已在 Amazon EMR 6.4.0 中得到修复。

  • 较早版本的 AL2 上“最大打开文件数”限制较低[此问题已在较新的发行版中修复]。Amazon EMR 发行版 emr-5.30.x、emr-5.31.0、emr-5.32.0、emr-6.0.0、emr-6.1.0 和 emr-6.2.0 基于较早版本的 Amazon Linux 2(AL2)。使用原定设置 AMI 创建 Amazon EMR 集群时,这些版本的“最大打开文件数”ulimit 设置较低。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本使用更高的“最大打开文件数”设置永久修复了此问题。如果使用打开文件数限制较低的发行版,会在提交 Spark 任务时导致“Too many open files”(打开的文件过多)错误。在受影响的发行版中,Amazon EMR 原定设置 AMI 的原定设置“最大打开文件数”ulimit 为 4096,而最新版 Amazon Linux 2 AMI 中的文件限制数为 65536。Spark 驱动程序和执行程序尝试打开超过 4096 个文件时,“打开的最大文件数”的较低 ulimit 设置会导致 Spark 任务失败。要修复此问题,Amazon EMR 使用一个引导操作(BA)脚本,用于在创建集群时调整 ulimit 设置。

    如果您使用没有永久修复此问题的较早版本的 Amazon EMR,则可以通过下面的解决方法,显式将实例控制器 ulimit 设置为最多 65536 个文件。

    从命令行显式设置 ulimit
    1. 编辑 /etc/systemd/system/instance-controller.service,将以下参数添加到 Service (服务) 部分。

      LimitNOFILE=65536

      LimitNPROC=65536

    2. 重新启动 InstanceController

      $ sudo systemctl daemon-reload

      $ sudo systemctl restart instance-controller

    使用引导操作 (BA) 设置 ulimit

    您还可以在创建集群时使用引导操作(BA)脚本将实例控制器 ulimit 配置为 65536 个文件。

    #!/bin/bash for user in hadoop spark hive; do sudo tee /etc/security/limits.d/$user.conf << EOF $user - nofile 65536 $user - nproc 65536 EOF done for proc in instancecontroller logpusher; do sudo mkdir -p /etc/systemd/system/$proc.service.d/ sudo tee /etc/systemd/system/$proc.service.d/override.conf << EOF [Service] LimitNOFILE=65536 LimitNPROC=65536 EOF pid=$(pgrep -f aws157.$proc.Main) sudo prlimit --pid $pid --nofile=65535:65535 --nproc=65535:65535 done sudo systemctl daemon-reload
  • 重要

    运行 Amazon Linux 或 Amazon Linux 2 AMI(Amazon Linux Machine Image)的 Amazon EMR 集群使用默认的 Amazon Linux 行为,且不会自动下载和安装需要重新启动的重要关键内核更新。这与运行默认 Amazon Linux AMI 的其它 Amazon EC2 实例的行为相同。如果需要重新启动的新 Amazon Linux 软件更新(例如内核、NVIDIA 和 CUDA 更新)在 Amazon EMR 版本发布后可用,则运行默认 AMI 的 Amazon EMR 集群实例不会自动下载和安装这些更新。要获取内核更新,您可以自定义 Amazon EMR AMI,以使用最新的 Amazon Linux AMI

  • GovCloud 区域中目前不支持使用控制台创建指定 Amazon Ranger 集成选项的安全配置。可以使用 CLI 完成安全配置。请参阅《Amazon EMR 管理指南》中的创建 EMR 安全配置

  • 在使用 Amazon EMR 5.31.0 或 5.32.0 的集群上启用了 AtRestEncryption 或 HDFS 加密时,Hive 查询会导致以下运行时系统异常。

    TaskAttempt 3 failed, info=[Error: Error while running task ( failure ) : attempt_1604112648850_0001_1_01_000000_3:java.lang.RuntimeException: java.lang.RuntimeException: Hive Runtime Error while closing operators: java.io.IOException: java.util.ServiceConfigurationError: org.apache.hadoop.security.token.TokenIdentifier: Provider org.apache.hadoop.hbase.security.token.AuthenticationTokenIdentifier not found
  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

发行版 6.2.0

以下发布说明包括有关 Amazon EMR 发行版 6.2.0 的信息。更改与 6.1.0 有关。

首次发布日期:2020 年 12 月 9 日

上次更新日期:2021 年 10 月 4 日

支持的应用程序
  • Amazon SDK for Java 1.11.828

  • emr-record-server 1.7.0

  • Flink 1.11.2

  • Ganglia 3.7.2

  • Hadoop 3.2.1-amzn-1

  • HBase 2.2.6-amzn-0

  • HBase-operator-tools 1.0.0

  • HCatalog 3.1.2-amzn-0

  • Hive 3.1.2-amzn-3

  • Hudi 0.6.0-amzn-1

  • Hue 4.8.0

  • JupyterHub 1.1.0

  • Livy 0.7.0

  • MXNet 1.7.0

  • Oozie 5.2.0

  • Phoenix 5.0.0

  • Pig 0.17.0

  • Presto 0.238.3-amzn-1

  • PrestoSQL 343

  • Spark 3.0.1-amzn-0

  • spark-rapids 0.2.0

  • TensorFlow 2.3.1

  • Zeppelin 0.9.0-preview1

  • Zookeeper 3.4.14

  • 连接器和驱动程序:DynamoDB 连接器 4.16.0

新特征
  • HBase:删除了提交阶段的重命名,添加了持久性 HFile 跟踪。请参阅《Amazon EMR 版本指南》中的持久性 HFile 跟踪

  • HBase:已逆向移植创建在压缩时强制缓存数据块的配置

  • PrestoDB:改进了动态分区修剪。基于规则的连接重新排序对未分区数据运行。

  • 限定范围的托管式策略:为了符合Amazon最佳实践,Amazon EMR 引入了 v2 EMR 范围的默认托管式策略,来替代即将弃用的策略。请参阅 Amazon EMR 托管式策略

  • 实例元数据服务(IMDS)V2 支持状态:对于 Amazon EMR 6.2 或更高版本,Amazon EMR 组件对所有 IMDS 调用都使用 IMDSv2。对于应用程序代码中的 IMDS 调用,您可以同时使用 IMDSv1 和 IMDSv2,或者将 IMDS 配置为仅使用 IMDSv2,以提高安全性。如果您在早于 Amazon EMR 6.x 的发行版中禁用 IMDSv1,则会导致集群启动失败。

更改、增强功能和解决的问题
  • 此版本旨在修复 Amazon EMR Scaling 无法成功纵向扩展/缩减集群或导致应用程序故障时出现的问题。

  • 修复了当 Amazon EMR 集群上的进程守护程序正在进行运行状况检查活动(例如收集 YARN 节点状态和 HDFS 节点状态)时,针对高利用率的大型集群的扩展请求失败的问题。之所以发生这种情况,是因为集群上的进程守护程序无法将节点的运行状况数据传递给内部 Amazon EMR 组件。

  • 改进了 EMR 集群上的进程守护程序,以便在重用 IP 地址时正确跟踪节点状态,从而提高扩缩操作期间的可靠性。

  • SPARK-29683。修复了集群缩减期间出现任务失败的问题,因为 Spark 假定所有可用节点都被拒绝列出。

  • YARN-9011。修复了集群尝试纵向扩展或缩减时,由于 YARN 停用中的争用条件导致任务失败的问题。

  • 通过确保 Amazon EMR 集群上的进程守护程序和 YARN/HDFS 之间的节点状态始终一致,解决了集群扩展期间步骤或任务失败的问题。

  • 修复了已启用 Kerberos 身份验证的 Amazon EMR 集群的诸如缩减和步骤提交等集群操作失败的问题。这是因为 Amazon EMR 集群上的进程守护程序没有续订 Kerberos 票证,而该票证是与主节点上运行的 HDFS/YARN 进行安全通信所必需的。

  • 较新的 Amazon EMR 发行版修复了 Amazon EMR 中较早版本的 AL2 上“最大打开文件数”限制较低的问题。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本现在用更高的“最大打开文件数”设置永久修复了此问题。

  • Spark:改进了 Spark 运行时的性能。

已知问题
  • Amazon EMR 6.2 对 EMR 6.2.0 中的 /etc/cron.d/libinstance-controller-java 文件设置了错误权限。当文件的权限应为 644 (-rw-r--r--) 时,它们为 645 (-rw-r--r-x)。因此,Amazon EMR 6.2 版本不记录实例状态日志,并且 /emr/instance-log 目录为空。此问题已在 Amazon EMR 6.3.0 及更高版本中得到修复。

    要解决此问题,请在集群启动时将以下脚本作为引导操作运行。

    #!/bin/bash sudo chmod 644 /etc/cron.d/libinstance-controller-java
  • 对于 Amazon EMR 6.2.0 和 6.3.0 私有子网集群,您不能访问 Ganglia Web UI。您将收到“access denied (403)”错误。其它 Web UI(如 Spark、Hue、JupyterHub、Zeppelin、Livy 和 Tez)可正常运行。公有子网集群上的 Ganglia Web UI 访问也正常工作。要解决该问题,请在具有 sudo systemctl restart httpd 的主节点上重新启动 httpd 服务。此问题已在 Amazon EMR 6.4.0 中得到修复。

  • Amazon EMR 6.2.0 中存在一个问题:httpd 持续失败,导致 Ganglia 不可用。您会收到“cannot connect to the server(无法连接到服务器)”错误。要修复已在运行期间出现此问题的集群,请使用 SSH 连接到集群主节点并将行 Listen 80 添加到位于 /etc/httpd/conf/httpd.conf 的文件 httpd.conf 中。此问题已在 Amazon EMR 6.3.0 中得到修复。

  • 使用安全配置时,HTTPD 在 EMR 6.2.0 集群会上失败。因此,Ganglia Web 应用程序用户界面不可用。要访问 Ganglia Web 应用程序用户界面,请将 Listen 80 添加到集群主节点上的 /etc/httpd/conf/httpd.conf 文件中。有关连接集群的更多信息,请参阅使用 SSH 连接到主节点

    使用安全配置时,EMR Notebooks 也无法建立与 EMR 6.2.0 集群的连接。笔记本将无法列出内核和提交 Spark 任务。我们建议您改为将 EMR Notebooks 与其它版本的 Amazon EMR 结合使用。

  • 较早版本的 AL2 上“最大打开文件数”限制较低[此问题已在较新的发行版中修复]。Amazon EMR 发行版 emr-5.30.x、emr-5.31.0、emr-5.32.0、emr-6.0.0、emr-6.1.0 和 emr-6.2.0 基于较早版本的 Amazon Linux 2(AL2)。使用原定设置 AMI 创建 Amazon EMR 集群时,这些版本的“最大打开文件数”ulimit 设置较低。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本使用更高的“最大打开文件数”设置永久修复了此问题。如果使用打开文件数限制较低的发行版,会在提交 Spark 任务时导致“Too many open files”(打开的文件过多)错误。在受影响的发行版中,Amazon EMR 原定设置 AMI 的原定设置“最大打开文件数”ulimit 为 4096,而最新版 Amazon Linux 2 AMI 中的文件限制数为 65536。Spark 驱动程序和执行程序尝试打开超过 4096 个文件时,“打开的最大文件数”的较低 ulimit 设置会导致 Spark 任务失败。要修复此问题,Amazon EMR 使用一个引导操作(BA)脚本,用于在创建集群时调整 ulimit 设置。

    如果您使用没有永久修复此问题的较早版本的 Amazon EMR,则可以通过下面的解决方法,显式将实例控制器 ulimit 设置为最多 65536 个文件。

    从命令行显式设置 ulimit
    1. 编辑 /etc/systemd/system/instance-controller.service,将以下参数添加到 Service (服务) 部分。

      LimitNOFILE=65536

      LimitNPROC=65536

    2. 重新启动 InstanceController

      $ sudo systemctl daemon-reload

      $ sudo systemctl restart instance-controller

    使用引导操作 (BA) 设置 ulimit

    您还可以在创建集群时使用引导操作(BA)脚本将实例控制器 ulimit 配置为 65536 个文件。

    #!/bin/bash for user in hadoop spark hive; do sudo tee /etc/security/limits.d/$user.conf << EOF $user - nofile 65536 $user - nproc 65536 EOF done for proc in instancecontroller logpusher; do sudo mkdir -p /etc/systemd/system/$proc.service.d/ sudo tee /etc/systemd/system/$proc.service.d/override.conf << EOF [Service] LimitNOFILE=65536 LimitNPROC=65536 EOF pid=$(pgrep -f aws157.$proc.Main) sudo prlimit --pid $pid --nofile=65535:65535 --nproc=65535:65535 done sudo systemctl daemon-reload
  • 重要

    Amazon EMR 6.1.0 和 6.2.0 包含可能严重影响所有 Hudi 插入、更新插入和删除操作的性能问题。如果您计划将 Hudi 与 Amazon EMR 6.1.0 或 6.2.0 结合使用,请联系 Amazon Support,获取 Hudi RPM 补丁。

  • 重要

    运行 Amazon Linux 或 Amazon Linux 2 AMI(Amazon Linux Machine Image)的 Amazon EMR 集群使用默认的 Amazon Linux 行为,且不会自动下载和安装需要重新启动的重要关键内核更新。这与运行默认 Amazon Linux AMI 的其它 Amazon EC2 实例的行为相同。如果需要重新启动的新 Amazon Linux 软件更新(例如内核、NVIDIA 和 CUDA 更新)在 Amazon EMR 版本发布后可用,则运行默认 AMI 的 Amazon EMR 集群实例不会自动下载和安装这些更新。要获取内核更新,您可以自定义 Amazon EMR AMI,以使用最新的 Amazon Linux AMI

  • Amazon EMR 6.2.0 Maven 构件尚未发布。它们将随 Amazon EMR 未来版本一起发布。

  • 使用 HBase 存储文件系统表的持久性 HFile 跟踪不支持 HBase 区域复制功能。有关 HBase 区域复制的更多信息,请参阅时间表一致的高可用读取

  • Amazon EMR 6.x 和 EMR 5.x Hive 分桶版本差异

    EMR 5.x 使用 OOS Apache Hive 2,而 EMR 6.x 使用 OOS Apache Hive 3。开源 Hive2 使用分桶版本 1,而开源 Hive3 使用分桶版本 2。Hive 2(EMR 5.x)和 Hive 3(EMR 6.x)之间的这一分桶版本差异将导致 Hive 分桶哈希函数不同。请参见以下示例。

    下表分别是在 EMR 6.x 和 EMR 5.x 中创建的示例。

    -- Using following LOCATION in EMR 6.x CREATE TABLE test_bucketing (id INT, desc STRING) PARTITIONED BY (day STRING) CLUSTERED BY(id) INTO 128 BUCKETS LOCATION 's3://your-own-s3-bucket/emr-6-bucketing/'; -- Using following LOCATION in EMR 5.x LOCATION 's3://your-own-s3-bucket/emr-5-bucketing/';

    在 EMR 6.x 和 EMR 5.x 中插入相同的数据。

    INSERT INTO test_bucketing PARTITION (day='01') VALUES(66, 'some_data'); INSERT INTO test_bucketing PARTITION (day='01') VALUES(200, 'some_data');

    检查 S3 位置,显示分桶文件名不同,这是因为 EMR 6.x(Hive 3)和 EMR 5.x(Hive 2)之间的哈希函数不同。

    [hadoop@ip-10-0-0-122 ~]$ aws s3 ls s3://your-own-s3-bucket/emr-6-bucketing/day=01/ 2020-10-21 20:35:16 13 000025_0 2020-10-21 20:35:22 14 000121_0 [hadoop@ip-10-0-0-122 ~]$ aws s3 ls s3://your-own-s3-bucket/emr-5-bucketing/day=01/ 2020-10-21 20:32:07 13 000066_0 2020-10-21 20:32:51 14 000072_0

    您还可以通过以下方式查看版本之间的差异:在 EMR 6.x 的 Hive CLI 中运行以下命令。请注意,它将返回分桶版本 2。

    hive> DESCRIBE FORMATTED test_bucketing; ... Table Parameters: bucketing_version 2 ...
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

发行版 5.31.0

以下发布说明包括有关 Amazon EMR 发行版 5.31.0 的信息。更改与 5.30.1 有关。

首次发布日期:2020 年 10 月 9 日

上次更新日期:2020 年 10 月 15 日

升级
  • 已将 Amazon Glue 连接器升级到版本 1.13.0

  • 已将 Amazon SageMaker Spark SDK 升级到版本 1.4.0

  • 已将 Amazon Kinesis 连接器升级到版本 3.5.9

  • 已将 Amazon SDK for Java 升级到版本 1.11.852

  • 已将 Bigtop-tomcat 升级到版本 8.5.56

  • 已将 EMR FS 升级到版本 2.43.0

  • 已将 EMR MetricsAndEventsApiGateway 客户端升级到版本 1.4.0

  • 已将 EMR S3 Dist CP 升级到版本 2.15.0

  • 已将 EMR S3 Select 升级到版本 1.6.0

  • 已将 Flink 升级到版本 1.11.0

  • 已将 Hadoop 升级到版本 2.10.0

  • 已将 Hive 升级到版本 2.3.7

  • 已将 Hudi 升级到版本 0.6.0

  • 已将 Hue 升级到版本 4.7.1

  • 已将 JupyterHub 升级到版本 1.1.0

  • 已将 Mxnet 升级到版本 1.6.0

  • 已将 OpenCV 升级到版本 4.3.0

  • 已将 Presto 升级到版本 0.238.3

  • 已将 TensorFlow 升级到版本 2.1.0

更改、增强功能和解决的问题
  • 此版本旨在修复 Amazon EMR Scaling 无法成功纵向扩展/缩减集群或导致应用程序故障时出现的问题。

  • 修复了当 Amazon EMR 集群上的进程守护程序正在进行运行状况检查活动(例如收集 YARN 节点状态和 HDFS 节点状态)时,针对高利用率的大型集群的扩展请求失败的问题。之所以发生这种情况,是因为集群上的进程守护程序无法将节点的运行状况数据传递给内部 Amazon EMR 组件。

  • 改进了 EMR 集群上的进程守护程序,以便在重用 IP 地址时正确跟踪节点状态,从而提高扩缩操作期间的可靠性。

  • SPARK-29683。修复了集群缩减期间出现任务失败的问题,因为 Spark 假定所有可用节点都被拒绝列出。

  • YARN-9011。修复了集群尝试纵向扩展或缩减时,由于 YARN 停用中的争用条件导致任务失败的问题。

  • 通过确保 Amazon EMR 集群上的进程守护程序和 YARN/HDFS 之间的节点状态始终一致,解决了集群扩展期间步骤或任务失败的问题。

  • 修复了已启用 Kerberos 身份验证的 Amazon EMR 集群的诸如缩减和步骤提交等集群操作失败的问题。这是因为 Amazon EMR 集群上的进程守护程序没有续订 Kerberos 票证,而该票证是与主节点上运行的 HDFS/YARN 进行安全通信所必需的。

  • 较新的 Amazon EMR 发行版修复了 Amazon EMR 中较早版本的 AL2 上“最大打开文件数”限制较低的问题。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本现在用更高的“最大打开文件数”设置永久修复了此问题。

  • Amazon EMR 5.31.0 及更高版本支持 Hive 列统计信息

  • 升级了组件版本。

  • Amazon EMR 5.31.0 支持 EMRFS S3EC V2。在 S3 Java SDK 1.11.837 及更高版本中,引入了加密客户端版本 2(S3EC V2),并新增了各种安全增强功能。有关更多信息,请参阅下列内容:

    为保持向后兼容性,加密客户端 V1 在 SDK 中仍可用。

新特征
  • 较早版本的 AL2 上“最大打开文件数”限制较低[此问题已在较新的发行版中修复]。Amazon EMR 发行版 emr-5.30.x、emr-5.31.0、emr-5.32.0、emr-6.0.0、emr-6.1.0 和 emr-6.2.0 基于较早版本的 Amazon Linux 2(AL2)。使用原定设置 AMI 创建 Amazon EMR 集群时,这些版本的“最大打开文件数”ulimit 设置较低。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本使用更高的“最大打开文件数”设置永久修复了此问题。如果使用打开文件数限制较低的发行版,会在提交 Spark 任务时导致“Too many open files”(打开的文件过多)错误。在受影响的发行版中,Amazon EMR 原定设置 AMI 的原定设置“最大打开文件数”ulimit 为 4096,而最新版 Amazon Linux 2 AMI 中的文件限制数为 65536。Spark 驱动程序和执行程序尝试打开超过 4096 个文件时,“打开的最大文件数”的较低 ulimit 设置会导致 Spark 任务失败。要修复此问题,Amazon EMR 使用一个引导操作(BA)脚本,用于在创建集群时调整 ulimit 设置。

    如果您使用没有永久修复此问题的较早版本的 Amazon EMR,则可以通过下面的解决方法,显式将实例控制器 ulimit 设置为最多 65536 个文件。

    从命令行显式设置 ulimit
    1. 编辑 /etc/systemd/system/instance-controller.service,将以下参数添加到 Service (服务) 部分。

      LimitNOFILE=65536

      LimitNPROC=65536

    2. 重新启动 InstanceController

      $ sudo systemctl daemon-reload

      $ sudo systemctl restart instance-controller

    使用引导操作 (BA) 设置 ulimit

    您还可以在创建集群时使用引导操作(BA)脚本将实例控制器 ulimit 配置为 65536 个文件。

    #!/bin/bash for user in hadoop spark hive; do sudo tee /etc/security/limits.d/$user.conf << EOF $user - nofile 65536 $user - nproc 65536 EOF done for proc in instancecontroller logpusher; do sudo mkdir -p /etc/systemd/system/$proc.service.d/ sudo tee /etc/systemd/system/$proc.service.d/override.conf << EOF [Service] LimitNOFILE=65536 LimitNPROC=65536 EOF pid=$(pgrep -f aws157.$proc.Main) sudo prlimit --pid $pid --nofile=65535:65535 --nproc=65535:65535 done sudo systemctl daemon-reload
  • 借助 Amazon EMR 5.31.0,您可以启动与 Lake Formation 集成的集群。该集成提供精细的列级数据筛选功能,用于筛选 Amazon Glue 数据目录中的数据库和表。它还支持从企业身份系统通过联合单点登录的方式登录 EMR Notebooks 或 Apache Zeppelin。有关更多信息,请参阅《Amazon EMR 管理指南》中的 将 Amazon EMR 与 Amazon Lake Formation 集成

    Amazon EMR(集成 Lake Formation)目前已在 16 个Amazon区域推出:美国东部(俄亥俄和弗吉尼亚北部)、美国西部(加利福尼亚北部和俄勒冈)、亚太地区(孟买、首尔、新加坡、悉尼和东京)、加拿大(中部)、欧洲(法兰克福、爱尔兰、伦敦、巴黎和斯德哥尔摩)、南美洲(圣保罗)。

已知问题
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

  • 在使用 Amazon EMR 5.31.0 或 5.32.0 的集群上启用了 AtRestEncryption 或 HDFS 加密时,Hive 查询会导致以下运行时系统异常。

    TaskAttempt 3 failed, info=[Error: Error while running task ( failure ) : attempt_1604112648850_0001_1_01_000000_3:java.lang.RuntimeException: java.lang.RuntimeException: Hive Runtime Error while closing operators: java.io.IOException: java.util.ServiceConfigurationError: org.apache.hadoop.security.token.TokenIdentifier: Provider org.apache.hadoop.hbase.security.token.AuthenticationTokenIdentifier not found
  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

发行版 6.1.0

以下发布说明包括有关 Amazon EMR 发行版 6.1.0 的信息。更改与 6.0.0 有关。

首次发布日期:2020 年 9 月 4 日

上次更新日期:2020 年 10 月 15 日

支持的应用程序
  • Amazon SDK for Java 1.11.828

  • Flink 1.11.0

  • Ganglia 3.7.2

  • Hadoop 3.2.1-amzn-1

  • HBase 2.2.5

  • HBase-operator-tools 1.0.0

  • HCatalog 3.1.2-amzn-0

  • Hive 3.1.2-amzn-1

  • Hudi 0.5.2-incubating

  • Hue 4.7.1

  • JupyterHub 1.1.0

  • Livy 0.7.0

  • MXNet 1.6.0

  • Oozie 5.2.0

  • Phoenix 5.0.0

  • Presto 0.232

  • PrestoSQL 338

  • Spark 3.0.0-amzn-0

  • TensorFlow 2.1.0

  • Zeppelin 0.9.0-preview1

  • Zookeeper 3.4.14

  • 连接器和驱动程序:DynamoDB 连接器 4.14.0

新特征
  • 从 Amazon EMR 5.30.0 和 Amazon EMR 6.1.0 开始,支持 ARM 实例类型。

  • 从 Amazon EMR 6.1.0 和 5.30.0.开始,支持 M6g 通用型实例类型。有关更多信息,请参阅《Amazon EMR 管理指南》中的支持的实例类型

  • 从 Amazon EMR 5.23.0 开始支持 EC2 置放群组功能,该功能可作为多主节点集群选项。目前,置放群组功能仅支持主节点类型,并会将 SPREAD 策略应用于这些主节点。SPREAD 策略将一小组实例放置在单独的基础硬件上,以防止发生硬件故障时出现多个主节点丢失的问题。有关更多信息,请参阅《Amazon EMR 管理指南》中的 EMR 与 EC2 置放群组的集成

  • 托管扩展 – 使用 Amazon EMR 版本 6.1.0 时,您可以启用 Amazon EMR 托管式自动扩缩功能,以根据工作负载自动增加或减少集群中实例或单位的数量。Amazon EMR 会持续评估集群指标,以便做出扩展决策,从而优化集群的成本和速度。Amazon EMR 5.30.0 及更高版本(但 6.0.0 除外)也提供了托管扩展。有关更多信息,请参阅《Amazon EMR 管理指南》中的扩缩集群资源

  • EMR 6.1.0 支持 PrestoSQL 338。有关更多信息,请参阅 Presto

    • 仅在 EMR 6.1.0 及更高版本上支持 PrestoSQL,而 EMR 6.0.0 或 EMR 5.x 则不支持。

    • 可以继续使用应用程序名称 Presto 在集群上安装 PrestoDB。要在集群上安装 PrestoSQL,请使用应用程序名称 PrestoSQL

    • 您可以安装 PrestoDB 或 PrestoSQL,但不能在同一个集群上同时安装两者。如果在尝试创建集群时同时指定了 PrestoDB 和 PrestoSQL,则会发生验证错误,而且集群创建请求失败。

    • 单主节点集群和多主节点集群均支持 PrestoSQL。在多主节点集群上,需要外部 Hive 元存储才能运行 PrestoSQL 或 PrestoDB。请参阅 Supported applications in an EMR cluster with multiple primary nodes

  • 支持在 Apache Hadoop 和 Apache Spark 上使用 Docker 对 ECR 进行自动身份验证:Spark 用户可以使用 Docker Hub 中的 Docker 镜像和 Amazon Elastic Container Registry(Amazon ECR)来定义环境和库依赖项。

    配置 Docker使用 Amazon EMR 6.x 通过 Docker 运行 Spark 应用程序

  • EMR 支持 Apache Hive ACID 事务:Amazon EMR 6.1.0 增加了对 Hive ACID 事务的支持,使其符合数据库的 ACID 属性。借助此功能,您可以使用 Amazon Simple Storage Service(Amazon S3)中的数据在 Hive 托管表中运行INSERT, UPDATE, DELETE,MERGE操作。这是流式提取、数据重述、使用 MERGE 批量更新等使用案例的一项关键功能,并会缓慢更改维度。有关包括配置示例和使用案例在内的更多信息,请参阅 Amazon EMR 支持 Apache Hive ACID 事务

更改、增强功能和解决的问题
  • 此版本旨在修复 Amazon EMR Scaling 无法成功纵向扩展/缩减集群或导致应用程序故障时出现的问题。

  • 修复了当 Amazon EMR 集群上的进程守护程序正在进行运行状况检查活动(例如收集 YARN 节点状态和 HDFS 节点状态)时,针对高利用率的大型集群的扩展请求失败的问题。之所以发生这种情况,是因为集群上的进程守护程序无法将节点的运行状况数据传递给内部 Amazon EMR 组件。

  • 改进了 EMR 集群上的进程守护程序,以便在重用 IP 地址时正确跟踪节点状态,从而提高扩缩操作期间的可靠性。

  • SPARK-29683。修复了集群缩减期间出现任务失败的问题,因为 Spark 假定所有可用节点都被拒绝列出。

  • YARN-9011。修复了集群尝试纵向扩展或缩减时,由于 YARN 停用中的争用条件导致任务失败的问题。

  • 通过确保 Amazon EMR 集群上的进程守护程序和 YARN/HDFS 之间的节点状态始终一致,解决了集群扩展期间步骤或任务失败的问题。

  • 修复了已启用 Kerberos 身份验证的 Amazon EMR 集群的诸如缩减和步骤提交等集群操作失败的问题。这是因为 Amazon EMR 集群上的进程守护程序没有续订 Kerberos 票证,而该票证是与主节点上运行的 HDFS/YARN 进行安全通信所必需的。

  • 较新的 Amazon EMR 发行版修复了 Amazon EMR 中较早版本的 AL2 上“最大打开文件数”限制较低的问题。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本现在用更高的“最大打开文件数”设置永久修复了此问题。

  • EMR 6.0.0 上不支持 Apache Fink,但集成了 Flink 1.11.0 的 EMR 6.1.0 可以支持 Apache Fink。这是首个正式支持 Hadoop 3 的 Fink 版本。请参阅 Apache Flink 1.11.0 发布公告

  • 默认 EMR 6.1.0 捆绑包中已经删除了 Ganglia。

已知问题
  • 较早版本的 AL2 上“最大打开文件数”限制较低[此问题已在较新的发行版中修复]。Amazon EMR 发行版 emr-5.30.x、emr-5.31.0、emr-5.32.0、emr-6.0.0、emr-6.1.0 和 emr-6.2.0 基于较早版本的 Amazon Linux 2(AL2)。使用原定设置 AMI 创建 Amazon EMR 集群时,这些版本的“最大打开文件数”ulimit 设置较低。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本使用更高的“最大打开文件数”设置永久修复了此问题。如果使用打开文件数限制较低的发行版,会在提交 Spark 任务时导致“Too many open files”(打开的文件过多)错误。在受影响的发行版中,Amazon EMR 原定设置 AMI 的原定设置“最大打开文件数”ulimit 为 4096,而最新版 Amazon Linux 2 AMI 中的文件限制数为 65536。Spark 驱动程序和执行程序尝试打开超过 4096 个文件时,“打开的最大文件数”的较低 ulimit 设置会导致 Spark 任务失败。要修复此问题,Amazon EMR 使用一个引导操作(BA)脚本,用于在创建集群时调整 ulimit 设置。

    如果您使用没有永久修复此问题的较早版本的 Amazon EMR,则可以通过下面的解决方法,显式将实例控制器 ulimit 设置为最多 65536 个文件。

    从命令行显式设置 ulimit
    1. 编辑 /etc/systemd/system/instance-controller.service,将以下参数添加到 Service (服务) 部分。

      LimitNOFILE=65536

      LimitNPROC=65536

    2. 重新启动 InstanceController

      $ sudo systemctl daemon-reload

      $ sudo systemctl restart instance-controller

    使用引导操作 (BA) 设置 ulimit

    您还可以在创建集群时使用引导操作(BA)脚本将实例控制器 ulimit 配置为 65536 个文件。

    #!/bin/bash for user in hadoop spark hive; do sudo tee /etc/security/limits.d/$user.conf << EOF $user - nofile 65536 $user - nproc 65536 EOF done for proc in instancecontroller logpusher; do sudo mkdir -p /etc/systemd/system/$proc.service.d/ sudo tee /etc/systemd/system/$proc.service.d/override.conf << EOF [Service] LimitNOFILE=65536 LimitNPROC=65536 EOF pid=$(pgrep -f aws157.$proc.Main) sudo prlimit --pid $pid --nofile=65535:65535 --nproc=65535:65535 done sudo systemctl daemon-reload
  • 重要

    Amazon EMR 6.1.0 和 6.2.0 包含可能严重影响所有 Hudi 插入、更新插入和删除操作的性能问题。如果您计划将 Hudi 与 Amazon EMR 6.1.0 或 6.2.0 结合使用,请联系 Amazon Support,获取 Hudi RPM 补丁。

  • 如果使用 spark.driver.extraJavaOptionsspark.executor.extraJavaOptions 设置自定义垃圾回收配置,将会因为垃圾回收配置冲突导致 EMR 6.1 驱动程序/执行程序启动失败。使用 EMR 发行版 6.1.0 时,您应该使用属性 spark.driver.defaultJavaOptionsspark.executor.defaultJavaOptions 为驱动程序和执行程序指定自定义 Spark 垃圾回收配置。如要了解更多信息,请参阅 Apache Spark 运行时环境在 Amazon EMR 6.1.0 上配置 Spark 垃圾回收

  • 在 Oozie 中使用 Pig(以及在 Hue 中,因为 Hue 使用 Oozie 操作来运行 Pig 脚本)会生成一个错误,即无法加载 native-lzo 库。此错误消息是信息性的,不会阻止 Pig 运行。

  • Hudi 并发支持:目前 Hudi 不支持并发写入单个 Hudi 表。此外,Hudi 会回滚处于运行状态的写入器所做的所有更改后再允许新写入器启动。并发写入可能会干扰此机制并引入竞争条件,这会导致数据损坏。您应确保作为数据处理工作流程的一部分,任何时候都只有一个 Hudi 写入器对 Hudi 表进行操作。Hudi 支持多个并发读取器对同一 Hudi 表进行操作。

  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

  • Amazon EMR 6.1.0 中存在一个问题,会影响运行 Presto 的集群。在较长时间(天)后,集群可能会引发错误,例如“su: failed to execute /bin/bash: Resource temporarily unavailable”或“shell request failed on channel 0”。此问题是由内部 Amazon EMR 进程(InstanceController)产生过多的轻量级进程(LWP)导致的,这最终会导致 Hadoop 用户超出其 nproc 限制。这可以阻止用户打开其它进程。此问题的解决方案是:升级到 EMR 6.2.0。

发行版 6.0.0

以下发布说明包括有关 Amazon EMR 发行版 6.0.0 的信息。

首次发布日期:2020 年 3 月 10 日

支持的应用程序
  • Amazon SDK for Java 1.11.711

  • Ganglia 3.7.2

  • Hadoop 3.2.1

  • HBase 2.2.3

  • HCatalog 3.1.2

  • Hive 3.1.2

  • Hudi 0.5.0-incubating

  • Hue 4.4.0

  • JupyterHub 1.0.0

  • Livy 0.6.0

  • MXNet 1.5.1

  • Oozie 5.1.0

  • Phoenix 5.0.0

  • Presto 0.230

  • Spark 2.4.4

  • TensorFlow 1.14.0

  • Zeppelin 0.9.0-SNAPSHOT

  • Zookeeper 3.4.14

  • 连接器和驱动程序:DynamoDB 连接器 4.14.0

注意

Flink、Sqoop、Pig 和 Mahout 在 Amazon EMR 6.0.0 中不可用。

新特征
更改、增强功能和解决的问题
  • 此版本旨在修复 Amazon EMR Scaling 无法成功纵向扩展/缩减集群或导致应用程序故障时出现的问题。

  • 修复了当 Amazon EMR 集群上的进程守护程序正在进行运行状况检查活动(例如收集 YARN 节点状态和 HDFS 节点状态)时,针对高利用率的大型集群的扩展请求失败的问题。之所以发生这种情况,是因为集群上的进程守护程序无法将节点的运行状况数据传递给内部 Amazon EMR 组件。

  • 改进了 EMR 集群上的进程守护程序,以便在重用 IP 地址时正确跟踪节点状态,从而提高扩缩操作期间的可靠性。

  • SPARK-29683。修复了集群缩减期间出现任务失败的问题,因为 Spark 假定所有可用节点都被拒绝列出。

  • YARN-9011。修复了集群尝试纵向扩展或缩减时,由于 YARN 停用中的争用条件导致任务失败的问题。

  • 通过确保 Amazon EMR 集群上的进程守护程序和 YARN/HDFS 之间的节点状态始终一致,解决了集群扩展期间步骤或任务失败的问题。

  • 修复了已启用 Kerberos 身份验证的 Amazon EMR 集群的诸如缩减和步骤提交等集群操作失败的问题。这是因为 Amazon EMR 集群上的进程守护程序没有续订 Kerberos 票证,而该票证是与主节点上运行的 HDFS/YARN 进行安全通信所必需的。

  • 较新的 Amazon EMR 发行版修复了 Amazon EMR 中较早版本的 AL2 上“最大打开文件数”限制较低的问题。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本现在用更高的“最大打开文件数”设置永久修复了此问题。

  • Amazon Linux

    • Amazon Linux 2 是 EMR 6.x 发布版本系列的操作系统。

    • 使用 systemd 进行服务管理,而 Amazon Linux 1 中使用的是 upstart

  • Java 开发工具包 (JDK)

    • Coretto JDK 8 是 EMR 6.x 版本系列的默认 JDK。

  • Scala

    • Scala 2.12 与 Apache Spark 和 Apache Livy 一起使用。

  • Python 3

    • Python 3 现在是 EMR 中的默认 Python 版本。

  • YARN 节点标注

    • 从 Amazon EMR 6.x 发行版系列开始,默认情况下禁用 YARN 节点标注功能。默认情况下,应用程序主进程可以在核心节点和任务节点上运行。您可以通过配置以下属性来启用 YARN 节点标注功能:yarn.node-labels.enabledyarn.node-labels.am.default-node-label-expression。有关更多信息,请参阅了解主节点、核心节点和任务节点

已知问题
  • 较早版本的 AL2 上“最大打开文件数”限制较低[此问题已在较新的发行版中修复]。Amazon EMR 发行版 emr-5.30.x、emr-5.31.0、emr-5.32.0、emr-6.0.0、emr-6.1.0 和 emr-6.2.0 基于较早版本的 Amazon Linux 2(AL2)。使用原定设置 AMI 创建 Amazon EMR 集群时,这些版本的“最大打开文件数”ulimit 设置较低。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本使用更高的“最大打开文件数”设置永久修复了此问题。如果使用打开文件数限制较低的发行版,会在提交 Spark 任务时导致“Too many open files”(打开的文件过多)错误。在受影响的发行版中,Amazon EMR 原定设置 AMI 的原定设置“最大打开文件数”ulimit 为 4096,而最新版 Amazon Linux 2 AMI 中的文件限制数为 65536。Spark 驱动程序和执行程序尝试打开超过 4096 个文件时,“打开的最大文件数”的较低 ulimit 设置会导致 Spark 任务失败。要修复此问题,Amazon EMR 使用一个引导操作(BA)脚本,用于在创建集群时调整 ulimit 设置。

    如果您使用没有永久修复此问题的较早版本的 Amazon EMR,则可以通过下面的解决方法,显式将实例控制器 ulimit 设置为最多 65536 个文件。

    从命令行显式设置 ulimit
    1. 编辑 /etc/systemd/system/instance-controller.service,将以下参数添加到 Service (服务) 部分。

      LimitNOFILE=65536

      LimitNPROC=65536

    2. 重新启动 InstanceController

      $ sudo systemctl daemon-reload

      $ sudo systemctl restart instance-controller

    使用引导操作 (BA) 设置 ulimit

    您还可以在创建集群时使用引导操作(BA)脚本将实例控制器 ulimit 配置为 65536 个文件。

    #!/bin/bash for user in hadoop spark hive; do sudo tee /etc/security/limits.d/$user.conf << EOF $user - nofile 65536 $user - nproc 65536 EOF done for proc in instancecontroller logpusher; do sudo mkdir -p /etc/systemd/system/$proc.service.d/ sudo tee /etc/systemd/system/$proc.service.d/override.conf << EOF [Service] LimitNOFILE=65536 LimitNPROC=65536 EOF pid=$(pgrep -f aws157.$proc.Main) sudo prlimit --pid $pid --nofile=65535:65535 --nproc=65535:65535 done sudo systemctl daemon-reload
  • Spark 交互式 shell(包括 PySpark、SparkR 和 spark-shell)不支持将 Docker 与其它库一起使用。

  • 要在 Amazon EMR 6.0.0 中使用 Python 3,您必须在 yarn.nodemanager.env-whitelist 中添加 PATH

  • 使用 Amazon Glue 数据目录作为 Hive 的元存储时,不支持 Live Long and Process(LLAP)功能。

  • 将 Amazon EMR 6.0.0 与 Spark 和 Docker 集成使用时,您需要使用同一实例类型和相同数量的 EBS 卷配置集群中的实例,以避免在使用 Docker 运行时提交 Spark 任务时出现故障。

  • 在 Amazon EMR 6.0.0 中,HBASE-24286 问题会影响 HBase on Amazon S3 存储模式。使用现有 S3 数据创建集群时,无法初始化 HBase 主服务器。

  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

发行版 5.30.1

以下发布说明包括有关 Amazon EMR 发行版 5.30.1 的信息。更改与 5.30.0 有关。

首次发布日期:2020 年 6 月 30 日

上次更新时间:2020 年 8 月 24 日

更改、增强功能和解决的问题
  • 较新的 Amazon EMR 发行版修复了 Amazon EMR 中较早版本的 AL2 上“最大打开文件数”限制较低的问题。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本现在用更高的“最大打开文件数”设置永久修复了此问题。

  • 修复了实例控制器进程生成无限量进程的问题。

  • 修复了以下问题:Hue 无法运行 Hive 查询并显示“database is locked(数据库已锁定)”消息、阻止执行查询的问题。

  • 修复了一个 Spark 问题,现在可以在 EMR 集群上同时运行更多任务。

  • 修复了一个 Jupyter notebook 问题,该问题会导致 Jupyter 服务器中出现“too many files open error(打开过多文件错误)”。

  • 修复了集群启动时间的问题。

新特征
  • Amazon EMR 版本 6.x 和 EMR 版本 5.30.1 及更高版本提供了 Tez UI 和 YARN 时间线服务器持久性应用程序界面。无需通过 SSH 连接设置 Web 代理,访问永久性应用程序历史记录的一键式链接即可让您快速访问任务历史记录。活动和已终止集群的日志将在应用程序结束后保留 30 天。有关更多信息,请参阅《Amazon EMR 管理指南》中的查看持久性应用程序用户界面

  • 可以使用 EMR Notebooks 执行 API 通过脚本或命令行来执行 EMR Notebooks。无需使用Amazon控制台以编程方式控制 EMR Notebooks,即可启动、停止、列出和描述 EMR Notebooks 执行。借助参数化笔记本单元,您可以将不同的参数值传递给笔记本,而无需为每组新参数值创建笔记本副本。请参阅 EMR API 操作。有关示例代码,请参阅以编程方式执行 EMR Notebooks 的示例命令。

已知问题
  • 较早版本的 AL2 上“最大打开文件数”限制较低[此问题已在较新的发行版中修复]。Amazon EMR 发行版 emr-5.30.x、emr-5.31.0、emr-5.32.0、emr-6.0.0、emr-6.1.0 和 emr-6.2.0 基于较早版本的 Amazon Linux 2(AL2)。使用原定设置 AMI 创建 Amazon EMR 集群时,这些版本的“最大打开文件数”ulimit 设置较低。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本使用更高的“最大打开文件数”设置永久修复了此问题。如果使用打开文件数限制较低的发行版,会在提交 Spark 任务时导致“Too many open files”(打开的文件过多)错误。在受影响的发行版中,Amazon EMR 原定设置 AMI 的原定设置“最大打开文件数”ulimit 为 4096,而最新版 Amazon Linux 2 AMI 中的文件限制数为 65536。Spark 驱动程序和执行程序尝试打开超过 4096 个文件时,“打开的最大文件数”的较低 ulimit 设置会导致 Spark 任务失败。要修复此问题,Amazon EMR 使用一个引导操作(BA)脚本,用于在创建集群时调整 ulimit 设置。

    如果您使用没有永久修复此问题的较早版本的 Amazon EMR,则可以通过下面的解决方法,显式将实例控制器 ulimit 设置为最多 65536 个文件。

    从命令行显式设置 ulimit
    1. 编辑 /etc/systemd/system/instance-controller.service,将以下参数添加到 Service (服务) 部分。

      LimitNOFILE=65536

      LimitNPROC=65536

    2. 重新启动 InstanceController

      $ sudo systemctl daemon-reload

      $ sudo systemctl restart instance-controller

    使用引导操作 (BA) 设置 ulimit

    您还可以在创建集群时使用引导操作(BA)脚本将实例控制器 ulimit 配置为 65536 个文件。

    #!/bin/bash for user in hadoop spark hive; do sudo tee /etc/security/limits.d/$user.conf << EOF $user - nofile 65536 $user - nproc 65536 EOF done for proc in instancecontroller logpusher; do sudo mkdir -p /etc/systemd/system/$proc.service.d/ sudo tee /etc/systemd/system/$proc.service.d/override.conf << EOF [Service] LimitNOFILE=65536 LimitNPROC=65536 EOF pid=$(pgrep -f aws157.$proc.Main) sudo prlimit --pid $pid --nofile=65535:65535 --nproc=65535:65535 done sudo systemctl daemon-reload
  • EMR Notebooks

    在 EMR 版本 5.30.1 上,默认情况下禁用在集群主节点上安装内核和其他 Python 库的功能。有关此功能的更多信息,请参阅在集群主节点上安装内核和 Python 库

    要启动此功能,请执行以下操作:

    1. 确保附加到 EMR Notebooks 服务角色的权限策略允许执行以下操作:

      elasticmapreduce:ListSteps

      有关更多信息,请参阅 EMR Notebooks 的服务角色

    2. 使用 Amazon CLI 在集群上运行一个设置 EMR Notebooks 的步骤,如以下示例所示。将 us-east-1 替换为您的集群所在的区域。有关更多信息,请参阅使用 Amazon CLI 向集群中添加步骤

      aws emr add-steps --cluster-id MyClusterID --steps Type=CUSTOM_JAR,Name=EMRNotebooksSetup,ActionOnFailure=CONTINUE,Jar=s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://awssupportdatasvcs.com/bootstrap-actions/EMRNotebooksSetup/emr-notebooks-setup.sh"]
  • 托管扩展

    在未安装 Presto 的 5.30.0 和 5.30.1 的集群上进行托管扩展操作可能会导致应用程序故障或导致统一的实例组或实例集处于 ARRESTED 状态,尤其是在缩减操作之后快速执行扩展操作时。

    解决方法是即使您的任务不需要 Presto,也可以在使用 Amazon EMR 发行版 5.30.0 和 5.30.1 创建集群时,将 Presto 选为要安装的应用程序。

  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

发行版 5.30.0

以下发布说明包括有关 Amazon EMR 发行版 5.30.0 的信息。更改与 5.29.0 有关。

首次发布日期:2020 年 5 月 13 日

上次更新日期:2020 年 6 月 25 日

升级
  • 已将 Amazon SDK for Java 升级到版本 1.11.759

  • 已将 Amazon SageMaker Spark SDK 升级到版本 1.3.0

  • 已将 EMR 记录服务器升级到版本 1.6.0

  • 已将 Flink 升级到版本 1.10.0

  • 已将 Ganglia 升级到版本 3.7.2

  • 已将 HBase 升级到版本 1.4.13

  • 已将 Hudi 升级到版本 0.5.2-incubating

  • 已将 Hue 升级到版本 4.6.0

  • 已将 JupyterHub 升级到版本 1.1.0

  • 已将升级 Livy 到版本 0.7.0-incubating

  • 已将 Oozie 升级到版本 5.2.0

  • 已将 Presto 升级到版本 0.232

  • 已将 Spark 升级到版本 2.4.5

  • 升级的连接器和驱动程序:Amazon Glue Connector 1.12.0;Amazon Kinesis Connector 3.5.0;EMR DynamoDB Connector 4.14.0

新特征
  • EMR Notebooks – 与使用 5.30.0 创建的 EMR 集群结合使用时,EMR Notebooks 内核在集群上运行。这可以提高笔记本的性能,并允许您安装和自定义内核。您还可以在集群主节点上安装 Python 库。有关更多信息,请参阅《EMR 管理指南》中的安装并使用内核和库

  • 托管扩展 – 使用 Amazon EMR 版本 5.30.0 及更高版本时,您可以启用 EMR 托管扩展,以根据工作负载自动增加或减少集群中实例或单位的数量。Amazon EMR 会持续评估集群指标,以便做出扩展决策,从而优化集群的成本和速度。有关更多信息,请参阅《Amazon EMR 管理指南》中的扩缩集群资源

  • 加密 Amazon S3 中存储的日志文件 – 使用 Amazon EMR 版本 5.30.0 及更高版本时,您可以使用 Amazon KMS 客户管理的密钥对 Amazon S3 中存储的日志文件进行加密。有关更多信息,请参阅《Amazon EMR 管理指南》中的加密存储在 Amazon S3 中的日志文件

  • Amazon Linux 2 支持 – 在 EMR 版本 5.30.0 及更高版本中,EMR 使用 Amazon Linux 2 操作系统。新的自定义 AMI(Amazon Machine Image)必须基于 Amazon Linux 2 AMI。有关更多信息,请参阅使用自定义 AMI

  • Presto 正常自动扩展 – 使用 5.30.0 的 EMR 集群可以设置自动扩展超时时段,以便 Presto 任务在其节点停用之前有时间完成运行。有关更多信息,请参阅使用采用 Graceful Decommission 的 Presto 自动扩展配置

  • 使用新的分配策略选项创建队列实例 – EMR 版本 5.12.1 及更高版本中提供了一个新的分配策略选项。它加快了集群预置、提高了 Spot 分配的准确性并减少了竞价型实例中断。需要更新非默认 EMR 服务角色。请查看配置实例集

  • sudo systemctl stop 和 sudo systemctl start 命令 – 在 EMR 版本 5.30.0 及更高版本(使用 Amazon Linux 2 操作系统)中,EMR 使用 sudo systemctl stopsudo systemctl start 命令重新启动服务。有关更多信息,请参阅如何在 Amazon EMR 中重新启动服务?

更改、增强功能和解决的问题
  • 默认情况下,EMR 版本 5.30.0 不安装 Ganglia。您可以在创建集群时明确选择 Ganglia 进行安装。

  • Spark 性能优化。

  • Presto 性能优化。

  • Amazon EMR 版本 5.30.0 及更高版本默认使用 Python 3。

  • 用于私有子网中服务访问的默认托管安全组已使用新规则进行更新。如果使用自定义安全组进行服务访问,则必须包含与默认托管安全组相同的规则。有关详细信息,请参阅适用于服务访问(私有子网)的 Amazon EMR 托管安全组。如果您对 Amazon EMR 使用自定义服务角色,则必须向 ec2:describeSecurityGroups 授予权限,以便 EMR 可以验证安全组是否已正确创建。如果您使用 EMR_DefaultRole,则此权限已包含在默认托管式策略中。

已知问题
  • 较早版本的 AL2 上“最大打开文件数”限制较低[此问题已在较新的发行版中修复]。Amazon EMR 发行版 emr-5.30.x、emr-5.31.0、emr-5.32.0、emr-6.0.0、emr-6.1.0 和 emr-6.2.0 基于较早版本的 Amazon Linux 2(AL2)。使用原定设置 AMI 创建 Amazon EMR 集群时,这些版本的“最大打开文件数”ulimit 设置较低。Amazon EMR 发行版 5.30.1、5.30.2、5.31.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0 及更高版本使用更高的“最大打开文件数”设置永久修复了此问题。如果使用打开文件数限制较低的发行版,会在提交 Spark 任务时导致“Too many open files”(打开的文件过多)错误。在受影响的发行版中,Amazon EMR 原定设置 AMI 的原定设置“最大打开文件数”ulimit 为 4096,而最新版 Amazon Linux 2 AMI 中的文件限制数为 65536。Spark 驱动程序和执行程序尝试打开超过 4096 个文件时,“打开的最大文件数”的较低 ulimit 设置会导致 Spark 任务失败。要修复此问题,Amazon EMR 使用一个引导操作(BA)脚本,用于在创建集群时调整 ulimit 设置。

    如果您使用没有永久修复此问题的较早版本的 Amazon EMR,则可以通过下面的解决方法,显式将实例控制器 ulimit 设置为最多 65536 个文件。

    从命令行显式设置 ulimit
    1. 编辑 /etc/systemd/system/instance-controller.service,将以下参数添加到 Service (服务) 部分。

      LimitNOFILE=65536

      LimitNPROC=65536

    2. 重新启动 InstanceController

      $ sudo systemctl daemon-reload

      $ sudo systemctl restart instance-controller

    使用引导操作 (BA) 设置 ulimit

    您还可以在创建集群时使用引导操作(BA)脚本将实例控制器 ulimit 配置为 65536 个文件。

    #!/bin/bash for user in hadoop spark hive; do sudo tee /etc/security/limits.d/$user.conf << EOF $user - nofile 65536 $user - nproc 65536 EOF done for proc in instancecontroller logpusher; do sudo mkdir -p /etc/systemd/system/$proc.service.d/ sudo tee /etc/systemd/system/$proc.service.d/override.conf << EOF [Service] LimitNOFILE=65536 LimitNPROC=65536 EOF pid=$(pgrep -f aws157.$proc.Main) sudo prlimit --pid $pid --nofile=65535:65535 --nproc=65535:65535 done sudo systemctl daemon-reload
  • 托管扩展

    在未安装 Presto 的 5.30.0 和 5.30.1 的集群上进行托管扩展操作可能会导致应用程序故障或导致统一的实例组或实例集处于 ARRESTED 状态,尤其是在缩减操作之后快速执行扩展操作时。

    解决方法是即使您的任务不需要 Presto,也可以在使用 Amazon EMR 发行版 5.30.0 和 5.30.1 创建集群时,将 Presto 选为要安装的应用程序。

  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

  • Hue 4.6.0 的默认数据库引擎是 SQLite,Hue 尝试使用外部数据库时,会引发问题。若要解决此问题,请在您的 hue-ini 配置分类中将 engine 设置为 mysql。Amazon EMR 版本 5.30.1 已修复这一问题。

  • 当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:

    • 从同一个表扫描两个或多个分区。

    • 至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,s3://bucket/table/p=as3://bucket/table/p=a b 的前缀。

    • 另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于 / 字符 (U+002F)。例如,在 s3://bucket/table/p=a b 中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。

    解决方法是在 spark-defaults 分类中将 spark.sql.sources.fastS3PartitionDiscovery.enabled 配置设置为 false

发行版 5.29.0

以下发布说明包括有关 Amazon EMR 发行版 5.29.0 的信息。更改与 5.28.1 有关。

首次发布日期:2020 年 1 月 17 日

升级
  • 已将 Amazon SDK for Java 升级到版本 1.11.682

  • 已将 Hive 升级到版本 2.3.6

  • 已将 Flink 升级到版本 1.9.1

  • 已将 EMRFS 升级到版本 2.38.0

  • 已将 EMR DynamoDB 连接器升级到版本 4.13.0

更改、增强功能和解决的问题
  • Spark

    • Spark 性能优化。

  • EMRFS

    • 将管理指南更新为 emrfs-site.xml 默认设置以实现了一致视图。

已知问题
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.28.1

以下发布说明包括有关 Amazon EMR 发行版 5.28.1 的信息。更改与 5.28.0 有关。

首次发布日期:2020 年 1 月 10 日

更改、增强功能和解决的问题
  • Spark

    • 修复了 Spark 兼容性问题。

  • CloudWatch 指标

    • 修复了在具有多个主节点的 EMR 集群上发布的 Amazon CloudWatch Metrics。

  • 已禁用日志消息

    • 已禁用假日志消息“...using old version (<4.5.8) of Apache http client”(使用低于版本 4.5.8 的 Apache http 客户端)。

已知问题
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.28.0

以下发布说明包括有关 Amazon EMR 发行版 5.28.0 的信息。更改与 5.27.0 有关。

首次发布日期:2019 年 11 月 12 日

升级
  • 已将 Flink 升级到版本 1.9.0

  • 已将 Hive 升级到版本 2.3.6

  • 已将 MXNet 升级到版本 1.5.1

  • 已将 Phoenix 升级到版本 4.14.3

  • 已将 Presto 升级到版本 0.227

  • 已将 Zeppelin 升级到版本 0.8.2

新特征
  • 创建集群时,Amazon EMR 现在可以安装 Apache Hudi。有关更多信息,请参阅Hudi

  • (2019 年 11 月 25 日)您现在可以选择并行运行多个步骤以提高集群利用率并节省成本。您还可以取消待处理和正在运行的步骤。有关更多信息,请参阅使用 Amazon CLI 和控制台执行步骤

  • (2019 年 12 月 3 日)您现在可以在 Amazon Outposts 上创建和运行 EMR 集群。Amazon Outposts 启用本地设施中的本地Amazon服务、基础设施和操作模型。在 Amazon Outposts 环境中,您可以使用与Amazon云中相同的 Amazon API、工具和基础设施。有关更多信息,请参阅 EMR clusters on Amazon Outposts

  • (2020 年 3 月 11 日)从 Amazon EMR 版本 5.28.0 开始,您可以在 Amazon Local Zones 子网上创建和运行 Amazon EMR 集群,作为支持的Amazon区域的逻辑扩展。本地区域使得 Amazon EMR 功能和Amazon服务的子集(如计算和存储服务)在位置上与用户更近,从而为本地运行的应用程序提供非常低的延迟访问。有关可用的 Local Zones 列表,请参阅 Amazon Local Zones。有关访问可用Amazon Local Zones 的信息,请参阅区域、可用区和 Local Zones

    Local Zones 目前不支持 Amazon EMR Notebooks,也不支持使用接口 VPC 终端节点(Amazon PrivateLink)直接连接到 Amazon EMR。

更改、增强功能和解决的问题
已知问题
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.27.0

以下发布说明包括有关 Amazon EMR 发行版 5.27.0 的信息。更改与 5.26.0 有关。

首次发布日期:2019 年 9 月 23 日

升级
  • Amazon SDK for Java 1.11.615

  • Flink 1.8.1

  • JupyterHub 1.0.0

  • Spark 2.4.4

  • Tensorflow 1.14.0

  • 连接器和驱动程序:

    • DynamoDB 连接器 4.12.0

新特征
  • (2019 年 10 月 24 日)所有 Amazon EMR 版本均在 EMR Notebooks 中提供以下新功能。

    • 您可以将 Git 存储库与 EMR Notebooks 关联,以将笔记本存储在版本控制的环境中。您可以通过远程 Git 存储库与同行共享代码,并重复使用现有的 Jupyter notebook。有关更多信息,请参阅《Amazon EMR 管理指南》中的将 Git 存储库与 Amazon EMR Notebooks 关联

    • nbdime 实用工具现在可在 EMR Notebooks 中使用,简化笔记本比较和合并。

    • EMR Notebooks 现在支持 JupyterLab。JupyterLab 是一个基于 Web 的交互式开发环境,与 Jupyter notebook 完全兼容。现在,您可以选择在 JupyterLab 或 Jupyter notebook 编辑器中打开笔记本。

  • (2019 年 10 月 30 日)借助 Amazon EMR 5.25.0 版及更高版本,您可以从控制台中的集群 Summary (摘要) 页面或 Application history (应用程序历史记录) 选项卡连接到 Spark 历史记录服务器 UI。您可以快速访问 Spark 历史记录服务器 UI,来查看应用程序指标并访问活动集群和终止集群的相关日志文件,而无需通过 SSH 连接设置 Web 代理。有关更多信息,请参阅《Amazon EMR 管理指南》中的集群外访问持久性应用程序用户界面

更改、增强功能和解决的问题
已知问题
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.26.0

以下发布说明包括有关 Amazon EMR 发行版 5.26.0 的信息。更改与 5.25.0 有关。

首次发布日期:2019 年 8 月 8 日

上次更新日期:2019 年 8 月 19 日

升级
  • Amazon SDK for Java 1.11.595

  • HBase 1.4.10

  • Phoenix 4.14.2

  • 连接器和驱动程序:

    • DynamoDB 连接器 4.11.0

    • MariaDB 连接器 2.4.2

    • Amazon Redshift JDBC 驱动程序 1.2.32.1056

新特征
  • (测试版)借助 Amazon EMR 5.26.0,您可以启动与 Lake Formation 集成的集群。此集成提供了对 Amazon Glue 数据目录中的数据库和表的精细列级别访问。它还支持从企业身份系统通过联合单点登录的方式登录 EMR Notebooks 或 Apache Zeppelin。有关更多信息,请参阅将 Amazon EMR 与 Amazon Lake Formation 集成(测试版)

  • (2019 年 8 月 19 日)所有支持安全组的 Amazon EMR 发行版现在均可提供 Amazon EMR 阻止公有访问功能。可在账户上设置阻止公有访问,适用于所有Amazon区域。如果与集群关联的任何安全组具有一个允许某端口上来自 IPv4 0.0.0.0/0 或 IPv6 ::/0(公有访问)的入站流量的规则,阻止公有访问将阻止集群启动,除非将该端口指定为例外。默认情况下,端口 22 是一个例外。有关更多信息,请参阅《Amazon EMR 管理指南》中的使用 Amazon EMR 阻止公有访问

更改、增强功能和解决的问题
  • EMR Notebooks

    • 在 EMR 5.26.0 及更高版本中,EMR Notebooks 除了默认的 Python 库外,还支持笔记本范围的 Python 库。无需重新创建集群或重新将笔记本附加到集群,您即可从笔记本编辑器中安装笔记本范围的库。笔记本范围的库是在 Python 虚拟环境中创建的,因此适用于当前笔记本会话。这使得您可以隔离笔记本依赖项。有关更多信息,请参阅《Amazon EMR 管理指南》中的使用笔记本范围的库

  • EMRFS

    • 您可以通过以下方式启用 ETag 验证功能(测试版):将 fs.s3.consistent.metadata.etag.verification.enabled 设置为 true。启用后,EMRFS 使用 Amazon S3 ETag 验证所读取的对象是否为最新可用版本。此功能对更新后读取使用案例很有帮助,在这些案例中,将覆盖 Amazon S3 上的文件但保留相同名称。此 ETag 验证功能当前不可用于 S3 Select。有关更多信息,请参阅配置统一视图

  • Spark

    • 现在,默认情况下启用以下优化:动态分区修剪、DISTINCT before INTERSECT、改进了 JPIN(后跟 DISTINCT 查询)的 SQL 计划统计数据推理、展平标量子查询、优化的连接重排序和 Bloom 筛选条件连接。有关更多信息,请参阅优化 Spark 性能

    • 改进了排序合并连接的整个阶段代码生成。

    • 改进了查询片段和子查询重用。

    • 改进了 Spark 启动时的预分配执行程序。

    • 连接的较小侧包含广播提示时,不再应用 Bloom 筛选条件连接。

  • Tez

    • 已解决 Tez 中存在的问题。Tez UI 现可用于具有多个主节点的 Amazon EMR 集群。

已知问题
  • 改进的“排序合并连接的整个阶段代码生成”功能在启用后会增加内存压力。此优化可提高性能,但如果 spark.yarn.executor.memoryOverheadFactor 未调整,不能提供足够的内存,则会导致任务重试或失败。要禁用此功能,请将 spark.sql.sortMergeJoinExec.extendedCodegen.enabled 设置为 false。

  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.25.0

以下发布说明包括有关 Amazon EMR 发行版 5.25.0 的信息。更改与 5.24.1 有关。

首次发布日期:2019 年 7 月 17 日

上次更新日期:2019 年 10 月 30 日

Amazon EMR 5.25.0

升级
  • Amazon SDK for Java 1.11.566

  • Hive 2.3.5

  • Presto 0.220

  • Spark 2.4.3

  • TensorFlow 1.13.1

  • Tez 0.9.2

  • Zookeeper 3.4.14

新特征
  • (2019 年 10 月 30 日)从 Amazon EMR 版本 5.25.0 开始,您可以从控制台中的集群 Summary (摘要) 页面或 Application history (应用程序历史记录) 选项卡连接到 Spark 历史记录服务器 UI。您可以快速访问 Spark 历史记录服务器 UI,来查看应用程序指标并访问活动集群和终止集群的相关日志文件,而无需通过 SSH 连接设置 Web 代理。有关更多信息,请参阅《Amazon EMR 管理指南》中的集群外访问持久性应用程序用户界面

更改、增强功能和解决的问题
  • Spark

    • 通过使用 Bloom 筛选条件预筛选输入,提高了某些连接的性能。默认情况下,优化处于禁用状态,但可以通过以下方式启用:将 Spark 配置参数 spark.sql.bloomFilterJoin.enabled 设置为 true

    • 改进了按字符串类型列分组的性能。

    • 改进了未安装 HBase 的集群 R4 实例类型的默认 Spark 执行程序内存和内核配置。

    • 解决了动态分区修剪功能之前存在的一个问题,即修剪的表必须位于联接的左侧。

    • 改进了 DISTINCT before INTERSECT 优化,以应用于涉及别名的其它情况。

    • 改进了 JOIN(后跟 DISTING 查询)的 SQL 计划统计数据推理。默认情况下,该改进处于禁用状态,但可以通过以下方式启用:将 Spark 配置参数 spark.sql.statsImprovements.enabled 设置为 true。此优化是“Distinct before Intersect”功能所需的,将 spark.sql.optimizer.distinctBeforeIntersect.enabled 设置为 true 时将自动启用。

    • 根据表格大小和筛选条件优化了联接顺序。默认情况下,该优化处于禁用状态,但可以通过以下方式启用:将 Spark 配置参数 spark.sql.optimizer.sizeBasedJoinReorder.enabled 设置为 true

    有关更多信息,请参阅优化 Spark 性能

  • EMRFS

    • 现在,EMRFS 设置 fs.s3.buckets.create.enabled 默认处于禁用状态。通过测试,我们发现禁用此设置可提高性能并可防止意外创建 S3 存储桶。如果您的应用程序需使用此功能,则可以通过以下方式启用:将 emrfs-site 配置分类中的 fs.s3.buckets.create.enabled 设置为 true。有关更多信息,请参阅在创建集群时提供配置

  • 安全配置中的本地磁盘加密和 S3 加密改进(2019 年 8 月 5 日)

    • 在安全配置设置中将 Amazon S3 加密设置与本地磁盘加密设置分开。

    • 发行版 5.24.0 及更高版本中添加了一个选项,可启用 EBS 加密。选择此选项后,除了存储卷之外,还会加密根设备卷。之前的版本需要使用自定义 AMI 来加密根设备卷。

    • 有关更多信息,请参阅《Amazon EMR 管理指南》中的加密选项

已知问题
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.24.1

以下发布说明包括有关 Amazon EMR 发行版 5.24.1 的信息。更改与 5.24.0 有关。

首次发布日期:2019 年 6 月 26 日

更改、增强功能和解决的问题
  • 更新了 Amazon EMR 的默认 Amazon Linux AMI,提供了重要的 Linux 内核安全更新,其中包括 TCP SACK 拒绝服务问题(AWS-2019-005)。

已知问题
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.24.0

以下发布说明包括有关 Amazon EMR 发行版 5.24.0 的信息。更改与 5.23.0 有关。

首次发布日期:2019 年 6 月 11 日

上次更新时间:2019 年 8 月 5 日

升级
  • Flink 1.8.0

  • Hue 4.4.0

  • JupyterHub 0.9.6

  • Livy 0.6.0

  • MxNet 1.4.0

  • Presto 0.219

  • Spark 2.4.2

  • Amazon SDK for Java 1.11.546

  • 连接器和驱动程序:

    • DynamoDB 连接器 4.9.0

    • MariaDB 连接器 2.4.1

    • Amazon Redshift JDBC 驱动程序 1.2.27.1051

更改、增强功能和解决的问题
  • Spark

    • 添加了对动态修剪分区的优化。默认情况下禁用优化。要启用该优化,请将 Spark 参数 spark.sql.dynamicPartitionPruning.enabled 设置为 true

    • 改进了 INTERSECT 查询的性能。默认情况下禁用此优化。要启用该优化,请将 Spark 参数 spark.sql.optimizer.distinctBeforeIntersect.enabled 设置为 true

    • 添加了对展平标量子查询的优化,可使用相同关系进行聚合。默认情况下禁用优化。要启用该优化,请将 Spark 参数 spark.sql.optimizer.flattenScalarSubqueriesWithAggregates.enabled 设置为 true

    • 改进了整个阶段代码生成。

    有关更多信息,请参阅优化 Spark 性能

  • 安全配置中的本地磁盘加密和 S3 加密改进(2019 年 8 月 5 日)

    • 在安全配置设置中将 Amazon S3 加密设置与本地磁盘加密设置分开。

    • 添加了一个启用 EBS 加密的选项。选择此选项后,除了存储卷之外,还会加密根设备卷。之前的版本需要使用自定义 AMI 来加密根设备卷。

    • 有关更多信息,请参阅《Amazon EMR 管理指南》中的加密选项

已知问题
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.23.0

以下发布说明包括有关 Amazon EMR 发行版 5.23.0 的信息。更改与 5.22.0 有关。

首次发布日期:2019 年 4 月 1 日

上次更新时间:2019 年 4 月 30 日

升级
  • Amazon SDK for Java 1.11.519

新特征
  • (2019 年 4 月 30 日)使用 Amazon EMR 5.23.0 及更高版本,您可以启动具有三个主节点的集群,以支持应用程序(如 YARN Resource Manager、HDFS NameNode、Spark、Hive 和 Ganglia)的高可用性。使用此功能,主节点不再发生潜在的单点故障。如果其中一个主节点出现故障,Amazon EMR 会自动故障转移到备用主节点,并将出现故障的主节点替换为具有相同配置和引导操作的新主节点。有关更多信息,请参阅计划和配置主节点

已知问题
  • Tez UI(已在 Amazon EMR 发行版 5.26.0 中修复)

    Tez UI 不能在具有多个主节点的 EMR 集群上运行。

  • Hue(已在 Amazon EMR 发行版 5.24.0 中修复)

    • 在 Amazon EMR 上运行的 Hue 不支持 Solr。从 Amazon EMR 发行版 5.20.0 开始,配置错误问题会导致 Solr 启用,并显示类似于以下内容的无害错误消息:

      Solr server could not be contacted properly: HTTPConnectionPool('host=ip-xx-xx-xx-xx.ec2.internal', port=1978): Max retries exceeded with url: /solr/admin/info/system?user.name=hue&doAs=administrator&wt=json (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused',))

      要防止显示 Solr 错误消息:

      1. 使用 SSH 连接到主节点命令行。

      2. 使用文本编辑器打开 hue.ini 文件。例如:

        sudo vim /etc/hue/conf/hue.ini

      3. 搜索术语 appblacklist,并将该行修改为以下内容:

        appblacklist = search
      4. 保存更改并重新启动 Hue,如以下示例所示:

        sudo stop hue; sudo start hue
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.22.0

以下发布说明包括有关 Amazon EMR 发行版 5.22.0 的信息。更改与 5.21.0 有关。

重要

从 Amazon EMR 发行版 5.22.0 开始,Amazon EMR 专门使用 Amazon 签名版本 4 来对 Amazon S3 的请求进行身份验证。除非发布说明指出需专门使用签名版本 4,否则早期 Amazon EMR 发行版在某些情况下使用 Amazon 签名版本 2。有关更多信息,请参阅《Amazon Simple Storage Service 开发人员指南》中的对请求进行身份验证(Amazon签名版本 4)对请求进行身份验证(Amazon签名版本 2)

首次发布日期:2019 年 3 月 20 日

升级
  • Flink 1.7.1

  • HBase 1.4.9

  • Oozie 5.1.0

  • Phoenix 4.14.1

  • Zeppelin 0.8.1

  • 连接器和驱动程序:

    • DynamoDB 连接器 4.8.0

    • MariaDB 连接器 2.2.6

    • Amazon Redshift JDBC 驱动程序 1.2.20.1043

新特征
  • 修改了仅限 EBS 存储的 EC2 实例类型的默认 EBS 配置。在使用 Amazon EMR 发行版 5.22.0 及更高版本创建集群时,默认 EBS 存储量根据实例大小而增加。此外,我们将增加的存储拆分到多个卷,从而提高了 IOPS 性能。如果要使用不同的 EBS 实例存储配置,您可以在创建 EMR 集群或将节点添加到现有集群时指定该配置。有关每个实例类型默认分配的存储容量和卷数的更多信息,请参阅《Amazon EMR 管理指南》中的实例的默认 EBS 存储

更改、增强功能和解决的问题
  • Spark

    • 在 YARN 上引入了一个新的配置属性 spark.yarn.executor.memoryOverheadFactor。此属性的值是一个缩放系数,它将内存开销值设置为执行程序内存的百分比,最小为 384 MB。如果内存开销设置为使用 spark.yarn.executor.memoryOverhead,则此属性不发挥任何作用。默认值为 0.1875,表示 18.75%。与 Spark 内部设置的 10% 的默认值相比,Amazon EMR 的此默认值在 YARN 容器中为执行器内存开销预留了更多空间。根据经验,Amazon EMR 默认值 18.75% 表明 TPC-DS 基准测试中与内存相关的故障较少。

    • 为了改进性能,已逆向移植 SPARK-26316

  • 在 Amazon EMR 版本 5.19.0、5.20.0 和 5.21.0 中,YARN 节点标注存储在 HDFS 目录中。在某些情况下,这会导致核心节点启动延迟,然后导致集群超时和启动失败。从 Amazon EMR 5.22.0 开始,此问题已得到解决。YARN 节点标注存储在每个集群节点的本地磁盘上,避免了对 HDFS 的依赖。

已知问题
  • Hue(已在 Amazon EMR 发行版 5.24.0 中修复)

    • 在 Amazon EMR 上运行的 Hue 不支持 Solr。从 Amazon EMR 发行版 5.20.0 开始,配置错误问题会导致 Solr 启用,并显示类似于以下内容的无害错误消息:

      Solr server could not be contacted properly: HTTPConnectionPool('host=ip-xx-xx-xx-xx.ec2.internal', port=1978): Max retries exceeded with url: /solr/admin/info/system?user.name=hue&doAs=administrator&wt=json (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused',))

      要防止显示 Solr 错误消息:

      1. 使用 SSH 连接到主节点命令行。

      2. 使用文本编辑器打开 hue.ini 文件。例如:

        sudo vim /etc/hue/conf/hue.ini

      3. 搜索术语 appblacklist,并将该行修改为以下内容:

        appblacklist = search
      4. 保存更改并重新启动 Hue,如以下示例所示:

        sudo stop hue; sudo start hue
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

发布版本 5.21.1

以下发布说明包括有关 Amazon EMR 发行版 5.21.1 的信息。更改与 5.21.0 有关。

首次发布日期:2019 年 7 月 18 日

更改、增强功能和解决的问题
  • 更新了 Amazon EMR 的默认 Amazon Linux AMI,提供了重要的 Linux 内核安全更新,其中包括 TCP SACK 拒绝服务问题(AWS-2019-005)。

已知问题
  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.21.0

以下发布说明包括有关 Amazon EMR 发行版 5.21.0 的信息。更改与 5.20.0 有关。

首次发布日期:2019 年 2 月 18 日

上次更新时间:2019 年 4 月 3 日

升级
  • Flink 1.7.0

  • Presto 0.215

  • Amazon SDK for Java 1.11.479

新特征
  • (2019 年 4 月 3 日)对于 Amazon EMR 5.21.0 及更高版本,您可以覆盖集群配置,并为运行的集群中的每个实例组指定额外的配置分类。要完成此操作,您可以使用 Amazon EMR 控制台、Amazon Command Line Interface(Amazon CLI)或 Amazon SDK。有关更多信息,请参阅为运行的集群中的实例组提供配置

更改、增强功能和解决的问题
已知问题
  • Hue(已在 Amazon EMR 发行版 5.24.0 中修复)

    • 在 Amazon EMR 上运行的 Hue 不支持 Solr。从 Amazon EMR 发行版 5.20.0 开始,配置错误问题会导致 Solr 启用,并显示类似于以下内容的无害错误消息:

      Solr server could not be contacted properly: HTTPConnectionPool('host=ip-xx-xx-xx-xx.ec2.internal', port=1978): Max retries exceeded with url: /solr/admin/info/system?user.name=hue&doAs=administrator&wt=json (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused',))

      要防止显示 Solr 错误消息:

      1. 使用 SSH 连接到主节点命令行。

      2. 使用文本编辑器打开 hue.ini 文件。例如:

        sudo vim /etc/hue/conf/hue.ini

      3. 搜索术语 appblacklist,并将该行修改为以下内容:

        appblacklist = search
      4. 保存更改并重新启动 Hue,如以下示例所示:

        sudo stop hue; sudo start hue
  • Tez

    • 此问题已在 Amazon EMR 5.22.0 中得到修复。

      通过 http://MasterDNS:8080/tez-ui 连接到 Tez UI 时(通过 SSH 连接到集群主节点),显示错误“Adapter operation failed - Timeline server (ATS) is out of reach。Either it is down, or CORS is not enabled”,或任务不正常地显示为“N/A”。

      这是由于 Tez UI 使用 localhost(而没有使用主节点的主机名称)向 YARN 时间线服务器发出请求所致。解决方法:将脚本作为引导操作或步骤运行。脚本更新 Tez configs.env 文件中的主机名。有关更多信息以及脚本的位置信息,请参阅引导说明

  • 在 Amazon EMR 版本 5.19.0、5.20.0 和 5.21.0 中,YARN 节点标注存储在 HDFS 目录中。在某些情况下,这会导致核心节点启动延迟,然后导致集群超时和启动失败。从 Amazon EMR 5.22.0 开始,此问题已得到解决。YARN 节点标注存储在每个集群节点的本地磁盘上,避免了对 HDFS 的依赖。

  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.20.0

以下发布说明包括有关 Amazon EMR 发行版 5.20.0 的信息。更改与 5.19.0 有关。

首次发布日期:2018 年 12 月 18 日

上次更新时间:2019 年 1 月 22 日

升级
  • Flink 1.6.2

  • HBase 1.4.8

  • Hive 2.3.4

  • Hue 4.3.0

  • MXNet 1.3.1

  • Presto 0.214

  • Spark 2.4.0

  • TensorFlow 1.12.0

  • Tez 0.9.1

  • Amazon SDK for Java 1.11.461

新特征
  • (2019 年 1 月 22 日)Amazon EMR 中的 Kerberos 已经得到改进,现在可支持对来自外部 KDC 的委托人进行身份验证。这集中了委托人管理,因为多个集群可以共享单个外部 KDC。此外,外部 KDC 可与 Active Directory 域建立跨领域信任关系。这使得所有集群可以从 Active Directory 对委托人进行身份验证。有关更多信息,请参阅《Amazon EMR 管理指南》中的使用 Kerberos 身份验证

更改、增强功能和解决的问题
  • Amazon EMR 的默认 Amazon Linux AMI

    • Python 3 软件包已从 Python 3.4 升级到 3.6。

  • 经 EMRFS S3 优化的提交程序

  • Hive

  • 集成 Spark 和 Hive 的 Glue

    • 在 EMR 5.20.0 或更高版本中,当使用 Amazon Glue 数据目录作为元存储时,会自动为 Spark 和 Hive 启用并行分区修剪。此更改通过并行执行多个请求来检索分区,显著缩短查询计划时间。可同时执行的分段总数介于 1 到 10 之间。默认值为 5,这是建议的设置。您可以通过以下方式更改该值:指定 hive-site 配置分类中的属性 aws.glue.partition.num.segments。如果发生节流,则可以通过将值更改为 1 来关闭此功能。有关更多信息,请参阅 Amazon Glue 分段结构

已知问题
  • Hue(已在 Amazon EMR 发行版 5.24.0 中修复)

    • 在 Amazon EMR 上运行的 Hue 不支持 Solr。从 Amazon EMR 发行版 5.20.0 开始,配置错误问题会导致 Solr 启用,并显示类似于以下内容的无害错误消息:

      Solr server could not be contacted properly: HTTPConnectionPool('host=ip-xx-xx-xx-xx.ec2.internal', port=1978): Max retries exceeded with url: /solr/admin/info/system?user.name=hue&doAs=administrator&wt=json (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 111] Connection refused',))

      要防止显示 Solr 错误消息:

      1. 使用 SSH 连接到主节点命令行。

      2. 使用文本编辑器打开 hue.ini 文件。例如:

        sudo vim /etc/hue/conf/hue.ini

      3. 搜索术语 appblacklist,并将该行修改为以下内容:

        appblacklist = search
      4. 保存更改并重新启动 Hue,如以下示例所示:

        sudo stop hue; sudo start hue
  • Tez

    • 此问题已在 Amazon EMR 5.22.0 中得到修复。

      通过 http://MasterDNS:8080/tez-ui 连接到 Tez UI 时(通过 SSH 连接到集群主节点),显示错误“Adapter operation failed - Timeline server (ATS) is out of reach。Either it is down, or CORS is not enabled”,或任务不正常地显示为“N/A”。

      这是由于 Tez UI 使用 localhost(而没有使用主节点的主机名称)向 YARN 时间线服务器发出请求所致。解决方法:将脚本作为引导操作或步骤运行。脚本更新 Tez configs.env 文件中的主机名。有关更多信息以及脚本的位置信息,请参阅引导说明

  • 在 Amazon EMR 版本 5.19.0、5.20.0 和 5.21.0 中,YARN 节点标注存储在 HDFS 目录中。在某些情况下,这会导致核心节点启动延迟,然后导致集群超时和启动失败。从 Amazon EMR 5.22.0 开始,此问题已得到解决。YARN 节点标注存储在每个集群节点的本地磁盘上,避免了对 HDFS 的依赖。

  • 具有多个主节点的集群和 Kerberos 身份验证中的已知问题

    如果在 Amazon EMR 版本 5.20.0 及更高版本中运行具有多个主节点的集群和 Kerberos 身份验证,则在集群运行一段时间后,您可能在执行集群操作(如缩减或步骤提交)时遇到问题。具体时间段取决于您定义的 Kerberos 票证有效期。缩减问题会影响您提交的自动缩减和显式缩减请求。其它集群操作也可能会受到影响。

    解决办法:

    • hadoop 用户身份通过 SSH 连接到具有多个主节点的 EMR 集群的 lead 主节点。

    • 运行以下命令,为 hadoop 用户续订 Kerberos 票证。

      kinit -kt <keytab_file> <principal>

      通常情况下,keytab 文件位于 /etc/hadoop.keytab,而 principal 为 hadoop/<hostname>@<REALM> 格式。

    注意

    此解决方法将在 Kerberos 票证有效期内生效。默认情况下,此持续时间为 10 个小时,但可以通过 Kerberos 设置进行配置。Kerberos 票证过期后,您必须重新运行上述命令。

版本 5.19.0

以下发布说明包括有关 Amazon EMR 发行版 5.19.0 的信息。更改与 5.18.0 有关。

首次发布日期:2018 年 11 月 7 日

上次更新时间:2018 年 11 月 19 日

升级
  • Hadoop 2.8.5

  • Flink 1.6.1

  • JupyterHub 0.9.4

  • MXNet 1.3.0

  • Presto 0.212

  • TensorFlow 1.11.0

  • Zookeeper 3.4.13

  • Amazon SDK for Java 1.11.433

新特征
  • (2018 年 11 月 19 日)EMR Notebooks 是基于 Jupyter notebook 的托管环境。它支持适用于 PySpark、Spark SQL、Spark R 和 Scala 的 Spark magic 内核。EMR Notebooks 可在使用 Amazon EMR 发行版 5.18.0 及更高版本创建的集群上使用。有关更多信息,请参阅《Amazon EMR 管理指南》中的使用 EMR Notebooks

  • 使用 Spark 和 EMRFS 编写 Parquet 文件时,可以使用经 EMRFS S3 优化的提交程序。此提交程序改进了写入性能。有关更多信息,请参阅使用经 EMRFS S3 优化的提交程序

更改、增强功能和解决的问题
  • YARN

  • Amazon EMR 的默认 Amazon Linux AMI

    • 默认情况下,不再安装 ruby18php56gcc48。如果需要,可以使用 yum 安装它们。

    • 默认情况下,不再安装 aws-sdk ruby gem。如果需要,可以使用 gem install aws-sdk 进行安装。此外,还可以安装特定组件。例如,gem install aws-sdk-s3

已知问题
  • EMR Notebooks – 在某些情况下,打开多个笔记本编辑器时,笔记本编辑器可能无法连接到集群。如果发生这种情况,请清除浏览器 Cookie,然后重新打开笔记本编辑器。

  • CloudWatch ContainerPending 指标和自动伸缩 –(已在 5.20.0 中修复)Amazon EMR 可能会发出一个 ContainerPending 负值。如果在自动伸缩规则中使用 ContainerPending,自动伸缩的行为方式可能会不符合预期。请避免在自动伸缩中使用 ContainerPending

  • 在 Amazon EMR 版本 5.19.0、5.20.0 和 5.21.0 中,YARN 节点标注存储在 HDFS 目录中。在某些情况下,这会导致核心节点启动延迟,然后导致集群超时和启动失败。从 Amazon EMR 5.22.0 开始,此问题已得到解决。YARN 节点标签存储在每个集群节点的本地磁盘上,避免了对 HDFS 的依赖。

版本 5.18.0

以下发布说明包括有关 Amazon EMR 发行版 5.18.0 的信息。更改与 5.17.0 有关。

首次发布日期:2018 年 10 月 24 日

升级
  • Flink 1.6.0

  • HBase 1.4.7

  • Presto 0.210

  • Spark 2.3.2

  • Zeppelin 0.8.0

新特征
  • 您可以使用 Amazon EMR 构件存储库构建针对特定 Amazon EMR 发行版(从 Amazon EMR 发行版 5.18.0 开始)附带的准确版本的库和依赖项的任务代码。有关更多信息,请参阅使用 Amazon EMR 项目存储库检查依赖项

更改、增强功能和解决的问题

发布版本 5.17.1

以下发布说明包括有关 Amazon EMR 发行版 5.17.1 的信息。更改与 5.17.0 有关。

首次发布日期:2019 年 7 月 18 日

更改、增强功能和解决的问题
  • 更新了 Amazon EMR 的默认 Amazon Linux AMI,提供了重要的 Linux 内核安全更新,其中包括 TCP SACK 拒绝服务问题(AWS-2019-005)。

版本 5.17.0

以下发布说明包括有关 Amazon EMR 发行版 5.17.0 的信息。更改与 5.16.0 有关。

首次发布日期:2018 年 8 月 30 日

升级
  • Flink 1.5.2

  • HBase 1.4.6

  • Presto 0.206

新特征
  • 添加了对 Tensorflow 的支持。有关更多信息,请参阅TensorFlow

更改、增强功能和解决的问题
已知问题
  • 创建使用 Kerberos 的集群时,如果安装了 Livy,Livy 将失败,并显示未启用简单身份验证的错误。重新启动 Livy 服务器可解决此问题。解决方法是在集群创建过程中添加一个在主节点上运行 sudo restart livy-server 的步骤。

  • 如果您使用基于 Amazon Linux AMI(创建日期为 2018-08-11)的自定义 Amazon Linux AMI,则 Oozie 服务器无法启动。如果您使用 Oozie,请根据具有不同创建日期的 Amazon Linux AMI ID 创建自定义 AMI。您可以使用以下 Amazon CLI 命令返回所有 2018.03 版本的 HVM Amazon Linux AMI 的镜像 ID 列表以及发布日期,以便您可以根据需要选择合适的 Amazon Linux AMI。将 MyRegion 替换为您的区域标识符,如 us-west-2。

    aws ec2 --region MyRegion describe-images --owner amazon --query 'Images[?Name!=`null`]|[?starts_with(Name, `amzn-ami-hvm-2018.03`) == `true`].[CreationDate,ImageId,Name]' --output text | sort -rk1

版本 5.16.0

以下发布说明包括有关 Amazon EMR 发行版 5.16.0 的信息。更改与 5.15.0 有关。

首次发布日期:2018 年 7 月 19 日

升级
  • Hadoop 2.8.4

  • Flink 1.5.0

  • Livy 0.5.0

  • MXNet 1.2.0

  • Phoenix 4.14.0

  • Presto 0.203

  • Spark 2.3.1

  • Amazon SDK for Java 1.11.336

  • CUDA 9.2

  • Redshift JDBC 驱动程序 1.2.15.1025

更改、增强功能和解决的问题
已知问题
  • 此发行版不支持 c1.medium 或 m1.small 实例类型。使用这些实例类型的集群将无法启动。解决方法:指定其它实例类型或使用其它发行版。

  • 创建使用 Kerberos 的集群时,如果安装了 Livy,Livy 将失败,并显示未启用简单身份验证的错误。重新启动 Livy 服务器可解决此问题。解决方法是在集群创建过程中添加一个在主节点上运行 sudo restart livy-server 的步骤。

  • 在 Amazon EMR 版本 5.14.0、5.15.0 或 5.16.0 中,在主节点重新启动或实例控制器重新启动后,将不会收集 CloudWatch 指标,且不提供自动扩展功能。此问题已在 Amazon EMR 5.17.0 中得到修复。

版本 5.15.0

以下发布说明包括有关 Amazon EMR 发行版 5.15.0 的信息。更改与 5.14.0 有关。

首次发布日期:2018 年 6 月 21 日

升级
  • 已将 HBase 升级到 1.4.4

  • 已将 Hive 升级到 2.3.3

  • 已将 Hue 升级到 4.2.0

  • 已将 Oozie 升级到 5.0.0

  • 已将 Zookeeper 升级到 3.4.12

  • 已将 Amazon SDK 升级到 1.11.333

更改、增强功能和解决的问题
  • Hive

  • Hue

    • 更新了 Hue,启用 Kerberos 后可以使用 Livy 正确地进行身份验证。现在,在 Amazon EMR 中使用 Kerberos 时,支持 Livy。

  • JupyterHub

    • 更新了 JupyterHub,因此 Amazon EMR 默认安装 LDAP 客户端库。

    • 修复了生成自签名凭证的脚本中的错误。

已知问题
  • 此发行版不支持 c1.medium 或 m1.small 实例类型。使用这些实例类型的集群将无法启动。解决方法:指定其它实例类型或使用其它发行版。

  • 在 Amazon EMR 版本 5.14.0、5.15.0 或 5.16.0 中,在主节点重新启动或实例控制器重新启动后,将不会收集 CloudWatch 指标,且不提供自动扩展功能。此问题已在 Amazon EMR 5.17.0 中得到修复。

版本 5.14.1

以下发布说明包括有关 Amazon EMR 发行版 5.14.1 的信息。更改与 5.14.0 有关。

首次发布日期:2018 年 10 月 17 日

更新了 Amazon EMR 的默认 AMI,解决了潜在的安全漏洞。

版本 5.14.0

以下发布说明包括有关 Amazon EMR 发行版 5.14.0 的信息。更改与 5.13.0 有关。

首次发布日期:2018 年 6 月 4 日

升级
  • 已将 Apache Flink 升级到 1.4.2

  • 已将 Apache MXnet 升级到 1.1.0

  • 已将 Apache Sqoop 升级到 1.4.7

新特征
  • 添加了对 JupyterHub 的支持。有关更多信息,请参阅JupyterHub

更改、增强功能和解决的问题
  • EMRFS

    • 更新了对 Amazon S3 的 userAgent 字符串请求,更新为包含调用委托人的用户和组信息。这可以与 Amazon CloudTrail 日志结合使用,来获取更全面的请求跟踪。

  • HBase

    • 提供了 HBASE-20447,它解决了可能导致缓存问题的问题,特别是拆分区域。

  • MXnet

    • 新增了 OpenCV 库。

  • Spark

    • Spark 使用 EMRFS 将 Parquet 文件写入 Amazon S3 位置时,FileOutputCommitter 算法已更新为使用版本 2 而非版本 1。这将减少重命名的数量,从而提高应用程序性能。此更改不会影响:

      • Spark 以外的应用程序。

      • 写入其它文件系统的应用程序,例如 HDFS(仍然使用 FileOutputCommitter 版本 1)。

      • 使用其它输出格式(如文本或 csv)的应用程序(已使用 EMRFS 直接写入)。

已知问题
  • JupyterHub

    • 不支持在创建集群时使用配置分类设置 JupyterHub 和单个 Jupyter notebook。手动编辑每个用户的 jupyterhub_config.py 文件和 jupyter_notebook_config.py 文件。有关更多信息,请参阅配置 JupyterHub

    • JupyterHub 无法在私有子网内的集群上启动,并显示消息 Error: ENOENT: no such file or directory, open '/etc/jupyter/conf/server.crt' 。这由生成自签名凭证的脚本中的错误所致。使用以下解决方法生成自签名凭证。在连接到主节点时执行所有命令。

      1. 将凭证生成脚本从容器复制到主节点:

        sudo docker cp jupyterhub:/tmp/gen_self_signed_cert.sh ./
      2. 使用文本编辑器更改第 23 行,将公有主机名更改为本地主机名,如下所示:

        local hostname=$(curl -s $EC2_METADATA_SERVICE_URI/local-hostname)
      3. 运行脚本,生成自签名凭证:

        sudo bash ./gen_self_signed_cert.sh
      4. 将脚本生成的凭证文件移至 /etc/jupyter/conf/ 目录:

        sudo mv /tmp/server.crt /tmp/server.key /etc/jupyter/conf/

      您可以对 jupyter.log 文件执行 tail,来验证 JupyterHub 是否重新启动并返回 200 响应代码。例如:

      tail -f /var/log/jupyter/jupyter.log

      该命令应返回与以下示例类似的响应:

      # [I 2018-06-14 18:56:51.356 JupyterHub app:1581] JupyterHub is now running at https://:9443/ # 19:01:51.359 - info: [ConfigProxy] 200 GET /api/routes
  • 在 Amazon EMR 版本 5.14.0、5.15.0 或 5.16.0 中,在主节点重新启动或实例控制器重新启动后,将不会收集 CloudWatch 指标,且不提供自动扩展功能。此问题已在 Amazon EMR 5.17.0 中得到修复。

版本 5.13.0

以下发布说明包括有关 Amazon EMR 发行版 5.13.0 的信息。更改与 5.12.0 有关。

升级
  • 已将 Spark 升级到 2.3.0

  • 已将 HBase 升级到 1.4.2

  • 已将 Presto 升级到 0.194

  • 已将 Amazon SDK for Java 升级到 1.11.297

更改、增强功能和解决的问题
  • Hive

    • 已逆向移植 HIVE-15436。增强了 Hive API 功能,仅返回视图。

已知问题
  • MXNet 目前暂无 OpenCV 库。

版本 5.12.2

以下发布说明包括有关 Amazon EMR 发行版 5.12.2 的信息。更改与 5.12.1 有关。

首次发布日期:2018年 8 月 29 日

更改、增强功能和解决的问题
  • 此版本解决了潜在的安全漏洞。

版本 5.12.1

以下发布说明包括有关 Amazon EMR 发行版 5.12.1 的信息。更改与 5.12.0 有关。

首次发布日期:2018 年 3 月 29 日

更改、增强功能和解决的问题
  • 更新了 Amazon EMR 的默认 Amazon Linux AMI 的 Amazon Linux 内核,解决了潜在漏洞。

版本 5.12.0

以下发布说明包括有关 Amazon EMR 发行版 5.12.0 的信息。更改与 5.11.1 有关。

升级
更改、增强功能和解决的问题
  • Hadoop

    • yarn.resourcemanager.decommissioning.timeout 属性已更改为 yarn.resourcemanager.nodemanager-graceful-decommission-timeout-secs。您可以使用此属性自定义集群缩减。有关更多信息,请参阅《Amazon EMR 管理指南》中的集群缩减

    • Hadoop CLI 向 cp(复制)命令添加了 -d 选项,可指定直接复制。可以使用它来避免创建中间 .COPYING 文件,这加快了在 Amazon S3 之间复制数据的速度。有关更多信息,请参阅 HADOOP-12384

  • Pig

    • 添加了 pig-env 配置分类,这简化了 Pig 环境属性的配置。有关更多信息,请参阅配置应用程序

  • Presto

    • 新增 presto-connector-redshift 配置分类,您可以将其用于配置 Presto redshift.properties 配置文件中的值。有关更多信息,请参阅 Presto 文档中 Redshift 连接器以及 配置应用程序

    • 已添加对 EMRFS 的 Presto 支持,且已设为默认配置。Amazon EMR 早期发行版使用 PrestoS3FileSystem,它是唯一选项。有关更多信息,请参阅EMRFS 和 PrestoS3FileSystem 配置

      注意

      如果您使用 Amazon EMR 版本 5.12.0 查询 Amazon S3 中的底层数据,则可能会出现 Presto 错误。这是因为 Presto 无法从 emrfs-site.xml 提取配置分类值。解决方法是在 usr/lib/presto/plugin/hive-hadoop2/ 下创建一个 emrfs 子目录,并在 usr/lib/presto/plugin/hive-hadoop2/emrfs 中创建一个指向现有 /usr/share/aws/emr/emrfs/conf/emrfs-site.xml 文件的符号链接。然后重新启动 presto-server 进程(首先执行 sudo presto-server stop,然后执行 sudo presto-server start)。

  • Spark

已知问题
  • MXNet 不包含 OpenCV 库。

  • SparkR 不适用于使用自定义 AMI 创建的集群,因为默认情况下不会在集群节点上安装 R。

发布版本 5.11.3

以下发布说明包括有关 Amazon EMR 发行版 5.11.3 的信息。更改与 5.11.2 有关。

首次发布日期:2019 年 7 月 18 日

更改、增强功能和解决的问题
  • 更新了 Amazon EMR 的默认 Amazon Linux AMI,提供了重要的 Linux 内核安全更新,其中包括 TCP SACK 拒绝服务问题(AWS-2019-005)。

版本 5.11.2

以下发布说明包括有关 Amazon EMR 发行版 5.11.2 的信息。更改与 5.11.1 有关。

首次发布日期:2018年 8 月 29 日

更改、增强功能和解决的问题
  • 此版本解决了潜在的安全漏洞。

版本 5.11.1

以下发布说明包括有关 Amazon EMR 发行版 5.11.1 的信息。更改与 Amazon EMR 5.11.0 发行版有关。

首次发布日期:2018 年 1 月 22 日

更改、增强功能和解决的问题

已知问题

  • MXNet 不包含 OpenCV 库。

  • 默认情况下,Hive 2.3.2 设置 hive.compute.query.using.stats=true。这会导致查询从现有统计数据而不是直接从数据中获取数据,这可能会造成混淆。例如,如果您有一个包含 hive.compute.query.using.stats=true 的表并且将新文件上载到表 LOCATION,则在该表上运行 SELECT COUNT(*) 查询会返回来自统计数据的计数,而不是选择已添加的行。

    作为解决方法,请使用 ANALYZE TABLE 命令收集新的统计数据,或者设置 hive.compute.query.using.stats=false。有关更多信息,请参阅 Apache Hive 文档中的 Hive 中的统计数据

版本 5.11.0

以下发布说明包括有关 Amazon EMR 发行版 5.11.0 的信息。更改与 Amazon EMR 5.10.0 发行版有关。

升级

以下应用程序和组件已在此版本中进行升级以包含以下版本。

  • Hive 2.3.2

  • Spark 2.2.1

  • SDK for Java1.11.238

新特征

  • Spark

    • 增加了 spark.decommissioning.timeout.threshold 设置,这将改进使用竞价型实例时的 Spark 停用行为。有关更多信息,请参阅配置节点停用行为

    • 向 Spark 添加了 aws-sagemaker-spark-sdk 组件,此组件将安装 Amazon SageMaker Spark 和用于 Spark 与 Amazon SageMaker 集成的关联依赖项。您可以使用 Amazon SageMaker Spark 构造使用 Amazon SageMaker 阶段的 Spark 机器学习 (ML) 管道。有关更多信息,请参阅 GitHub 上的 SageMaker Spark 自述文件和《Amazon SageMaker 开发人员指南》https://docs.amazonaws.cn/sagemaker/latest/dg/apache-spark.html中的将 Apache Spark 与 Amazon SageMaker 结合使用

已知问题

  • MXNet 不包含 OpenCV 库。

  • 默认情况下,Hive 2.3.2 设置 hive.compute.query.using.stats=true。这会导致查询从现有统计数据而不是直接从数据中获取数据,这可能会造成混淆。例如,如果您有一个包含 hive.compute.query.using.stats=true 的表并且将新文件上载到表 LOCATION,则在该表上运行 SELECT COUNT(*) 查询会返回来自统计数据的计数,而不是选择已添加的行。

    作为解决方法,请使用 ANALYZE TABLE 命令收集新的统计数据,或者设置 hive.compute.query.using.stats=false。有关更多信息,请参阅 Apache Hive 文档中的 Hive 中的统计数据

版本 5.10.0

以下发布说明包括有关 Amazon EMR 发行版 5.10.0 的信息。更改与 Amazon EMR 5.9.0 发行版有关。

升级

以下应用程序和组件已在此版本中进行升级以包含以下版本。

  • Amazon SDK for Java 1.11.221

  • Hive 2.3.1

  • Presto 0.187

新特征

更改、增强功能和解决的问题

  • Presto

  • Spark

    • 已逆向移植 SPARK-20640,这使随机注册的 rpc 超时值和重试次数值可使用 spark.shuffle.registration.timeoutspark.shuffle.registration.maxAttempts 属性进行配置。

    • 已逆向移植 SPARK-21549,这更正了在将自定义 OutputFormat 写入非 HDFS 位置时出现的错误。

  • 已逆向移植 Hadoop 13270

  • 从基本 Amazon EMR AMI 中删除了 Numpy、Scipy 和 Matplotlib 库。如果您的应用程序需要这些库,应用程序存储库中提供了它们,因此您可以通过引导操作使用 yum install 在所有节点上安装它们。

  • Amazon EMR 基本 AMI 不再包含应用程序 RPM 软件包,因此集群节点上不再存在 RPM 软件包。自定义 AMI 和 Amazon EMR 基本 AMI 现在引用 Amazon S3 中的 RPM 软件包存储库。

  • 因为 Amazon EC2 中引入了按秒计费,默认的 Scale down behavior (缩减行为) 现在为 Terminate at task completion (在任务完成时终止) 而非 Terminate at instance hour (在实例小时边界终止)。有关更多信息,请参阅配置集群缩减

已知问题

  • MXNet 不包含 OpenCV 库。

  • 默认情况下,Hive 2.3.1 设置 hive.compute.query.using.stats=true。这会导致查询从现有统计数据而不是直接从数据中获取数据,这可能会造成混淆。例如,如果您有一个包含 hive.compute.query.using.stats=true 的表并且将新文件上载到表 LOCATION,则在该表上运行 SELECT COUNT(*) 查询会返回来自统计数据的计数,而不是选择已添加的行。

    作为解决方法,请使用 ANALYZE TABLE 命令收集新的统计数据,或者设置 hive.compute.query.using.stats=false。有关更多信息,请参阅 Apache Hive 文档中的 Hive 中的统计数据

版本 5.9.0

以下发布说明包括有关 Amazon EMR 发行版 5.9.0 的信息。更改与 Amazon EMR 5.8.0 发行版有关。

发布日期:2017 年 10 月 5 日

最近功能更新时间:2017 年 10 月 12 日

升级

以下应用程序和组件已在此版本中进行升级以包含以下版本。

  • Amazon SDK for Java 1.11.183 版

  • Flink 1.3.2

  • Hue 4.0.1

  • Pig 0.17.0

  • Presto 0.184

新特征

  • 添加了 Livy 支持 (0.4.0-incubating 版)。有关更多信息,请参阅Apache Livy

  • 添加了对 Hue Notebook for Spark 的支持。

  • 添加了对 i3 系列 Amazon EC2 实例的支持 (2017 年 10 月 12 日)。

更改、增强功能和解决的问题

  • Spark

    • 添加了一组新功能,有助于确保 Spark 能够更为正常地处理因手动调整大小或自动扩展策略请求导致的节点终止。有关更多信息,请参阅配置节点停用行为

    • 使用 SSL 取代 3DES 为数据块传输服务提供 in-transit 加密,可在使用带 AES-NI 的 Amazon EC2 实例类型时增强性能。

    • 已逆向移植 SPARK-21494

  • Zeppelin

  • HBase

    • 添加了补丁 HBASE-18533,因此可以使用 hbase-site 配置分类为 HBase BucketCache 配置使用其它值。

  • Hue

    • 添加了对 Hue 中 Hive 查询编辑器的 Amazon Glue 数据目录支持。

    • 默认情况下,Hue 中的超级用户可以访问允许 Amazon EMR IAM 角色访问的所有文件。新建用户不会自动拥有对 Amazon S3 filebrowser 的访问权限,并且必须为其组启用 filebrowser.s3_access 权限。

  • 解决造成使用 Amazon Glue 数据目录创建的底层 JSON 数据不可访问的问题。

已知问题

  • 当安装了所有应用程序且未更改默认 Amazon EBS 根卷大小时,集群启动会失败。作为解决方法,请从 Amazon CLI 使用 aws emr create-cluster 命令并指定一个更大的 --ebs-root-volume-size 参数。

  • 默认情况下,Hive 2.3.0 设置 hive.compute.query.using.stats=true。这会导致查询从现有统计数据而不是直接从数据中获取数据,这可能会造成混淆。例如,如果您有一个包含 hive.compute.query.using.stats=true 的表并且将新文件上载到表 LOCATION,则在该表上运行 SELECT COUNT(*) 查询会返回来自统计数据的计数,而不是选择已添加的行。

    作为解决方法,请使用 ANALYZE TABLE 命令收集新的统计数据,或者设置 hive.compute.query.using.stats=false。有关更多信息,请参阅 Apache Hive 文档中的 Hive 中的统计数据

版本 5.8.2

以下发布说明包括有关 Amazon EMR 发行版 5.8.2 的信息。更改与 5.8.1 有关。

首次发布日期:2018 年 3 月 29 日

更改、增强功能和解决的问题
  • 更新了 Amazon EMR 的默认 Amazon Linux AMI 的 Amazon Linux 内核,解决了潜在漏洞。

版本 5.8.1

以下发布说明包括有关 Amazon EMR 发行版 5.8.1 的信息。更改与 Amazon EMR 5.8.0 发行版有关。

首次发布日期:2018 年 1 月 22 日

更改、增强功能和解决的问题

版本 5.8.0

以下发布说明包括有关 Amazon EMR 发行版 5.8.0 的信息。更改与 Amazon EMR 5.7.0 发行版有关。

首次发布日期:2017 年 8 月 10 日

最近功能更新时间:2017 年 9 月 25 日

升级

以下应用程序和组件已在此版本中进行升级以包含以下版本:

  • Amazon SDK 1.11.160

  • Flink 1.3.1

  • Hive 2.3.0。有关更多信息,请参阅 Apache Hive 站点上的发布说明

  • Spark 2.2.0。有关更多信息,请参阅 Apache Spark 站点上的发布说明

新特征

  • 添加了对查看应用程序历史记录的支持 (2017 年 9 月 25 日)。有关更多信息,请参阅《Amazon EMR 管理指南》中的查看应用程序历史记录

更改、增强功能和解决的问题

  • 与 Amazon Glue 数据目录集成

  • 已向集群详细信息添加 Application history (应用程序历史记录),这可让您查看 YARN 应用程序的历史数据以及 Spark 应用程序的其它详细信息。有关更多信息,请参阅《Amazon EMR 管理指南》中的查看应用程序历史记录

  • Oozie

  • Hue

  • HBase

    • 添加了补丁,以使用 getMasterInitializedTime 通过 Java 管理扩展 (JMX) 公开 HBase 主服务器启动时间。

    • 添加了改进集群启动时间的补丁。

已知问题

  • 当安装了所有应用程序且未更改默认 Amazon EBS 根卷大小时,集群启动会失败。作为解决方法,请从 Amazon CLI 使用 aws emr create-cluster 命令并指定一个更大的 --ebs-root-volume-size 参数。

  • 默认情况下,Hive 2.3.0 设置 hive.compute.query.using.stats=true。这会导致查询从现有统计数据而不是直接从数据中获取数据,这可能会造成混淆。例如,如果您有一个包含 hive.compute.query.using.stats=true 的表并且将新文件上载到表 LOCATION,则在该表上运行 SELECT COUNT(*) 查询会返回来自统计数据的计数,而不是选择已添加的行。

    作为解决方法,请使用 ANALYZE TABLE 命令收集新的统计数据,或者设置 hive.compute.query.using.stats=false。有关更多信息,请参阅 Apache Hive 文档中的 Hive 中的统计数据

  • Spark – 在使用 Spark 时,apppusher 进程守护程序存在文件处理程序泄漏问题,长时间运行的 Spark 任务在几个小时或几天后可能会出现此情况。要解决此问题,请连接到主节点并键入 sudo /etc/init.d/apppusher stop。这将停止 apppusher 进程守护程序,而 Amazon EMR 将自动重新启动它。

  • 应用程序历史记录

    • 死 Spark 执行程序的历史数据不可用。

    • 应用程序历史记录对使用安全配置来启用传输中加密的集群不可用。

版本 5.7.0

以下发布说明包括有关 Amazon EMR 发行版 5.7.0 的信息。更改与 Amazon EMR 5.6.0 发行版有关。

发布日期:2017 年 7 月 13 日

升级

  • Flink 1.3.0

  • Phoenix 4.11.0

  • Zeppelin 0.7.2

新特征

  • 添加了创建集群时指定自定义 Amazon Linux AMI 的功能。有关更多信息,请参阅使用自定义 AMI

更改、增强功能和解决的问题

  • HBase

    • 添加了配置 HBase 只读副本集群的功能。请参阅使用只读副本集群

    • 多个错误修复和增强功能

  • Presto – 添加了配置 node.properties 的功能。

  • YARN – 添加了配置 container-log4j.properties 的功能

  • Sqoop – 已逆向移植 SQOOP-2880,这将引入一个允许您设置 Sqoop 临时目录的参数。

版本 5.6.0

以下发布说明包括有关 Amazon EMR 发行版 5.6.0 的信息。更改与 Amazon EMR 5.5.0 发行版有关。

发布日期:2017 年 6 月 5 日

升级

  • Flink 1.2.1

  • HBase 1.3.1

  • Mahout 0.13.0。这是 Mahout 在 Amazon EMR 版本 5.0 及更高版本中支持 Spark 2.x 的第一个版本。

  • Spark 2.1.1

更改、增强功能和解决的问题

  • Presto

    • 添加了通过使用安全配置启用传输中加密,从而在 Presto 节点之间实现 SSL/TLS 安全通信的功能。有关更多信息,请参阅传输中的数据加密

    • 已逆向移植 Presto 7661,它向 EXPLAIN ANALYZE 语句添加了 VERBOSE 选项,以报告有关查询计划的更详细、高低级别的统计数据。

版本 5.5.3

以下发布说明包括有关 Amazon EMR 发行版 5.5.3 的信息。更改与 5.5.2 有关。

首次发布日期:2018年 8 月 29 日

更改、增强功能和解决的问题
  • 此版本解决了潜在的安全漏洞。

版本 5.5.2

以下发布说明包括有关 Amazon EMR 发行版 5.5.2 的信息。更改与 5.5.1 有关。

首次发布日期:2018 年 3 月 29 日

更改、增强功能和解决的问题
  • 更新了 Amazon EMR 的默认 Amazon Linux AMI 的 Amazon Linux 内核,解决了潜在漏洞。

版本 5.5.1

以下发布说明包括有关 Amazon EMR 发行版 5.5.1 的信息。更改与 Amazon EMR 5.5.0 发行版有关。

首次发布日期:2018 年 1 月 22 日

更改、增强功能和解决的问题

版本 5.5.0

以下发布说明包括有关 Amazon EMR 发行版 5.5.0 的信息。更改与 Amazon EMR 5.4.0 发行版有关。

发布日期:2017 年 4 月 26 日

升级

  • Hue 3.12

  • Presto 0.170

  • Zeppelin 0.7.1

  • ZooKeeper 3.4.10

更改、增强功能和解决的问题

  • Spark

  • Flink

    • Flink 现在使用 Scala 2.11 进行构建。如果您使用 Scala API 和库,我们建议您在项目中使用 Scala 2.11。

    • 解决了 HADOOP_CONF_DIRYARN_CONF_DIR 默认值未正确设置,因此 start-scala-shell.sh 无法工作的问题。此外,还添加了使用 env.hadoop.conf.direnv.yarn.conf.dir 配置类别中的 /etc/flink/conf/flink-conf.yamlflink-conf 设置这些值的功能。

    • 推出了一个新的 EMR 特定的命令 flink-scala-shell 作为 start-scala-shell.sh 的包装程序。我们建议使用此命令而不是 start-scala-shell。新命令可简化执行。例如,flink-scala-shell -n 2 将使用任务并行度 2 启动 Flink Scala Shell。

    • 推出了一个新的 EMR 特定的命令 flink-yarn-session 作为 yarn-session.sh 的包装程序。我们建议使用此命令而不是 yarn-session。新命令可简化执行。例如,flink-yarn-session -d -n 2 将使用两个任务管理器在分离状态下启动长时间运行的 Flink 会话。

    • 解决了 (FLINK-6125) commons httpclient is not shaded anymore in Flink 1.2 的问题。

  • Presto

    • 添加了对 LDAP 身份验证的支持。将 LDAP 与 Presto on Amazon EMR 结合使用,需要您启用对 Presto 协调器的 HTTPS 访问(config.properties 中的 http-server.https.enabled=true)。有关配置详细信息,请参阅 Presto 文档中的 LDAP 身份验证

    • 添加了对 SHOW GRANTS 的支持。

  • Amazon EMR 基本 Linux AMI

    • Amazon EMR 发行版现在基于 Amazon Linux 2017.03。有关更多信息,请参阅 Amazon Linux AMI 2017.03 发布说明

    • 从 Amazon EMR 基本 Linux 映像中删除了 Python 2.6。默认安装 Python 2.7 和 3.4。如果需要,您可以手动安装 Python 2.6。

版本 5.4.0

以下发布说明包括有关 Amazon EMR 发行版 5.4.0 的信息。更改与 Amazon EMR 5.3.0 发行版有关。

发布日期:2017 年 3 月 8 日

升级

此版本提供以下升级:

  • 已升级到 Flink 1.2.0

  • 已升级到 Hbase 1.3.0

  • 已升级到 Phoenix 4.9.0

    注意

    如果您从早期版本的 Amazon EMR 升级到 Amazon EMR 发行版 5.4.0 或更高版本并使用二级索引,请升级本地索引,如 Apache Phoenix 文档中所述。Amazon EMR 将从 hbase-site 分类中删除所需配置,但索引需要重新填充。支持在线和离线升级索引。在线升级为默认值,这意味着,在从版本 4.8.0 或更高版本的 Phoenix 客户端初始化时重新填充索引。要指定离线升级,请在 phoenix.client.localIndexUpgrade 分类中将 phoenix-site 配置设置为 false,然后将 SSH 设置为主节点以运行 psql [zookeeper] -1

  • 已升级到 Presto 0.166

  • 已升级到 Zeppelin 0.7.0

更改和增强功能

以下是对版本标签 emr-5.4.0 的 Amazon EMR 版本进行的更改:

版本 5.3.1

以下发布说明包括有关 Amazon EMR 发行版 5.3.1 的信息。更改与 Amazon EMR 5.3.0 发行版有关。

发布日期:2017 年 2 月 7 日

进行了微小更改:逆向移植 Zeppelin 补丁,并更新了 Amazon EMR 的默认 AMI。

版本 5.3.0

以下发布说明包括有关 Amazon EMR 发行版 5.3.0 的信息。更改与 Amazon EMR 5.2.1 发行版有关。

发布日期:2017 年 1 月 26 日

升级

此版本提供以下升级:

  • 已升级到 Hive 2.1.1

  • 已升级到 Hue 3.11.0

  • 已升级到 Spark 2.1.0

  • 已升级到 Oozie 4.3.0

  • 已升级到 Flink 1.1.4

更改和增强功能

以下是对版本标签 emr-5.3.0 的 Amazon EMR 版本进行的更改:

  • Hue 新增补丁可使您使用 interpreters_shown_on_wheel 设置配置解释器在笔记本选择轮盘上最先显示的内容,而不受 hue.ini 文件中排序的限制。

  • 新增 hive-parquet-logging 配置分类,您可以将其用于配置 Hive parquet-logging.properties 文件中的值。

版本 5.2.2

以下发布说明包括有关 Amazon EMR 发行版 5.2.2 的信息。更改与 Amazon EMR 5.2.1 发行版有关。

发布日期:2017 年 5 月 2 日

早期版本中已解决的已知问题

  • 已逆向移植 SPARK-194459,解决了从包含 char/varchar 列的 ORC 表读取内容时可能失败的问题。

版本 5.2.1

以下发布说明包括有关 Amazon EMR 发行版 5.2.1 的信息。更改与 Amazon EMR 5.2.0 发行版有关。

发布日期:2016 年 12 月 29 日

升级

此版本提供以下升级:

  • 已升级到 Presto 0.157.1。有关更多信息,请参阅 Presto 文档中的 Presto 发布说明

  • 已升级到 Zookeeper 3.4.9。有关更多信息,请参阅 Apache ZooKeeper 文档中的 ZooKeeper 发布说明

更改和增强功能

以下是对版本标签 emr-5.2.1 的 Amazon EMR 版本进行的更改:

  • 在 Amazon EMR 版本 4.8.3 及更高版本(但不包括 5.0.0、5.0.3 和 5.2.0)中添加了对 Amazon EC2 m4.16xlarge 实例类型的支持。

  • Amazon EMR 发行版现在基于 Amazon Linux 2016.09。有关更多信息,请参阅https://www.amazonaws.cn/amazon-linux-ami/2016.09-release-notes/

  • 现在,Flink 和 YARN 配置路径的位置默认在 /etc/default/flink 中设置,您在运行 FLINK_CONF_DIRHADOOP_CONF_DIR 驱动程序脚本启动 Flink 作业时,无需设置环境变量 flinkyarn-session.sh

  • 新增对 FlinkKinesisConsumer 类的支持。

早期版本中已解决的已知问题

  • 修复了 Hadoop 中的一个问题,即 ReplicationMonitor 线程可能会因为在大型集群中复制和删除同一个文件导致的竞争而卡住很长时间。

  • 修复了在作业状态未成功更新时 ControlledJob#toString 出现空指针异常 (NPE) 失败的问题。

版本 5.2.0

以下发布说明包括有关 Amazon EMR 发行版 5.2.0 的信息。更改与 Amazon EMR 5.1.0 发行版有关。

发布日期:2016 年 11 月 21 日

更改和增强功能

此版本中提供了以下更改和增强功能:

  • 添加了适用于 HBase 的 Amazon S3 存储模式。

  • 使您能够为 HBase rootdir 指定 Amazon S3 位置。有关更多信息,请参阅 Amazon S3 上的 HBase

升级

此版本提供以下升级:

  • 已升级到 Spark 2.0.2

早期版本中已解决的已知问题

  • 修复了限制为仅 EBS 实例类型上的 2 TB 的 /mnt 的问题。

  • 修复了输出到相应的 .out 文件而不是常规 log4j 配置的 .log 文件 (每小时转动一次) 的 instance-controller 和 logpusher 日志的问题。.out 文件不会轮换,因此这最终将填满 /emr 分区。此问题仅影响硬件虚拟机 (HVM) 实例类型。

版本 5.1.0

以下发布说明包括有关 Amazon EMR 发行版 5.1.0 的信息。更改与 Amazon EMR 5.0.0 发行版有关。

发布日期:2016 年 11 月 3 日

更改和增强功能

此版本中提供了以下更改和增强功能:

  • 增加了对 Flink 1.1.3 的支持。

  • Presto 已作为 Hue 的记事本部分中的选项添加。

升级

此版本提供以下升级:

  • 已升级到 HBase 1.2.3

  • 已升级到 Zeppelin 0.6.2

早期版本中已解决的已知问题

  • 修复了带 ORC 文件的 Amazon S3 上的 Tez 查询的性能低于早期 Amazon EMR 4.x 版本中的性能的问题。

版本 5.0.3

以下发布说明包括有关 Amazon EMR 发行版 5.0.3 的信息。更改与 Amazon EMR 5.0.0 发行版有关。

发布日期:2016 年 10 月 24 日

升级

此版本提供以下升级:

  • 已升级到 Hadoop 2.7.3

  • 已升级到 Presto 0.152.3,它包括对 Presto Web 界面的支持。可使用端口 8889 访问 Presto 协调器上的 Presto Web 界面。有关 Presto Web 界面的更多信息,请参阅 Presto 文档中的 Web 界面

  • 已升级到 Spark 2.0.1

  • Amazon EMR 发行版现在基于 Amazon Linux 2016.09。有关更多信息,请参阅https://www.amazonaws.cn/amazon-linux-ami/2016.09-release-notes/

版本 5.0.0

发布日期:2016 年 7 月 27 日

升级

此版本提供以下升级:

  • 已升级到 Hive 2.1

  • 已升级到 Presto 0.150

  • 已升级到 Spark 2.0

  • 已升级到 Hue 3.10.0

  • 已升级到 Pig 0.16.0

  • 已升级到 Tez 0.8.4

  • 已升级到 Zeppelin 0.6.1

更改和增强功能

以下是对版本标签 emr-5.0.0 的 Amazon EMR 版本进行的更改:

  • Amazon EMR 支持最新开源版本的 Hive(版本 2.1)和 Pig(版本 0.16.0)。如果您以前使用的是 Amazon EMR 上的 Hive 或 Pig,那么这可能会影响某些使用案例。有关更多信息,请参阅 HivePig

  • Hive 和 Pig 的默认执行引擎现在是 Tez。要更改该设置,您可以在 hive-sitepig-properties 配置分类中分别编辑相应的值。

  • 添加了增强型步骤调试功能,可让您查看步骤失败的根本原因 (如果服务可以确定原因)。有关更多信息,请参阅《Amazon EMR 管理指南》中的增强型步骤调试

  • 先前以“-Sandbox”结尾的应用程序不再拥有该后缀。这可能会中断您的自动化,例如,如果您使用脚本来启动具有这些应用程序的集群。下表显示了 Amazon EMR 4.7.2 与 Amazon EMR 5.0.0 中的应用程序名称。

    应用程序名称更改
    Amazon EMR 4.7.2 Amazon EMR 5.0.0
    Oozie-Sandbox Oozie
    Presto-Sandbox Presto
    Sqoop-Sandbox Sqoop
    Zeppelin-Sandbox Zeppelin
    ZooKeeper-Sandbox ZooKeeper
  • Spark 现在针对 Scala 2.11 进行编译。

  • Java 8 现在是默认 JVM。所有应用程序均使用 Java 8 runtime 运行。对任何应用程序的字节代码目标都没有进行更改。大多数应用程序继续运行 Java 7。

  • Zeppelin 现在包括身份验证功能。有关更多信息,请参阅 Zeppelin

  • 添加了对安全配置的支持,这使您可以更轻松地创建和应用加密选项。有关更多信息,请参阅数据加密

版本 4.9.5

以下发布说明包括有关 Amazon EMR 发行版 4.9.5 的信息。更改与 4.9.4 有关。

首次发布日期:2018年 8 月 29 日

更改、增强功能和解决的问题
  • HBase

    • 此版本解决了潜在的安全漏洞。

版本 4.9.4

以下发布说明包括有关 Amazon EMR 发行版 4.9.4 的信息。更改与 4.9.3 有关。

首次发布日期:2018 年 3 月 29 日

更改、增强功能和解决的问题
  • 更新了 Amazon EMR 的默认 Amazon Linux AMI 的 Amazon Linux 内核,解决了潜在漏洞。

版本 4.9.3

以下发布说明包括有关 Amazon EMR 发行版 4.9.3 的信息。更改与 Amazon EMR 4.9.2 发行版有关。

首次发布日期:2018 年 1 月 22 日

更改、增强功能和解决的问题

版本 4.9.2

以下发布说明包括有关 Amazon EMR 发行版 4.9.2 的信息。更改与 Amazon EMR 4.9.1 发行版有关。

发布日期:2017 年 7 月 13 日

此版本略微进行了一些改动、错误修复和增强。

版本 4.9.1

以下发布说明包括有关 Amazon EMR 发行版 4.9.1 的信息。更改与 Amazon EMR 4.8.4 发行版有关。

发布日期:2017 年 4 月 10 日

早期版本中已解决的已知问题

  • 已逆向移植 HIVE-9976HIVE-10106

  • 修复了 YARN 中的一个问题,即,大量节点 (大于 2000 个) 和容器 (大于 5000 个) 会导致内存不足错误,例如:"Exception in thread 'main' java.lang.OutOfMemoryError"

更改和增强功能

以下是对版本标签 emr-4.9.1 的 Amazon EMR 版本进行的更改:

版本 4.8.4

以下发布说明包括有关 Amazon EMR 发行版 4.8.4 的信息。更改与 Amazon EMR 4.8.3 发行版有关。

发布日期:2017 年 2 月 7 日

此版本略微进行了一些改动、错误修复和增强。

版本 4.8.3

以下发布说明包括有关 Amazon EMR 发行版 4.8.3 的信息。更改与 Amazon EMR 4.8.2 发行版有关。

发布日期:2016 年 12 月 29 日

升级

此版本提供以下升级:

  • 已升级到 Presto 0.157.1。有关更多信息,请参阅 Presto 文档中的 Presto 发布说明

  • 已升级到 Spark 1.6.3。有关更多信息,请参阅 Apache Spark 文档中的 Spark 发布说明

  • 已升级到 ZooKeeper 3.4.9。有关更多信息,请参阅 Apache ZooKeeper 文档中的 ZooKeeper 发布说明

更改和增强功能

以下是对版本标签 emr-4.8.3 的 Amazon EMR 版本进行的更改:

早期版本中已解决的已知问题

  • 修复了 Hadoop 中的一个问题,即 ReplicationMonitor 线程可能会因为在大型集群中复制和删除同一个文件导致的竞争而卡住很长时间。

  • 修复了在作业状态未成功更新时 ControlledJob#toString 出现空指针异常 (NPE) 失败的问题。

版本 4.8.2

以下发布说明包括有关 Amazon EMR 发行版 4.8.2 的信息。更改与 Amazon EMR 4.8.0 发行版有关。

发布日期:2016 年 10 月 24 日

升级

此版本提供以下升级:

  • 已升级到 Hadoop 2.7.3

  • 已升级到 Presto 0.152.3,它包括对 Presto Web 界面的支持。可使用端口 8889 访问 Presto 协调器上的 Presto Web 界面。有关 Presto Web 界面的更多信息,请参阅 Presto 文档中的 Web 界面

  • Amazon EMR 发行版现在基于 Amazon Linux 2016.09。有关更多信息,请参阅https://www.amazonaws.cn/amazon-linux-ami/2016.09-release-notes/

版本 4.8.0

发布日期:2016 年 9 月 7 日

升级

此版本提供以下升级:

  • 已升级到 HBase 1.2.2

  • 已升级到 Presto-Sandbox 0.151

  • 已升级到 Tez 0.8.4

  • 已升级到 Zeppelin-Sandbox 0.6.1

更改和增强功能

以下是对版本标签 emr-4.8.0 的 Amazon EMR 版本进行的更改:

  • 修复了 YARN 中的一个问题,ApplicationMaster 将在其中尝试清除不再存在的容器,因为它们的实例已终止。

  • 更正了 Oozie 示例中 Hive2 操作的 hive-server2 URL。

  • 添加了对其它 Presto 目录的支持。

  • 已逆向移植修补程序:HIVE-8948HIVE-12679HIVE-13405PHOENIX-3116HADOOP-12689

  • 添加了对安全配置的支持,这使您可以更轻松地创建和应用加密选项。有关更多信息,请参阅数据加密

版本 4.7.2

以下发布说明包括有关 Amazon EMR 4.7.2 的信息。

发布日期:2016 年 7 月 15 日

特征

此版本提供以下功能:

  • 已升级到 Mahout 0.12.2

  • 已升级到 Presto 0.148

  • 已升级到 Spark 1.6.2

  • 您现在可以使用 URI 作为参数来创建将与 EMRFS 配合使用的 AWSCredentialsProvider。有关更多信息,请参阅为 EMRFS 创建 AWSCredentialsProvider

  • EMRFS 现在允许用户使用 emrfs-site.xml 中的 fs.s3.consistent.dynamodb.endpoint 属性来为其一致视图元数据配置自定义 DynamoDB 终端节点。

  • /usr/bin 中添加了一个名为 spark-example 的脚本,它将包装 /usr/lib/spark/spark/bin/run-example,因此您可以直接运行示例。例如,要运行 Spark 分配的附带的 SparkPi 示例,可从命令行运行 spark-example SparkPi 100 或将 command-runner.jar 作为 API 中的一个步骤运行。

早期版本中已解决的已知问题

  • 修复了 Oozie 在安装 Spark 后拥有的 spark-assembly.jar 未位于正确位置 (这导致使用 Oozie 启动 Spark 应用程序失败) 的问题。

  • 修复了与 YARN 容器中基于 Spark Log4j 的登录有关的问题。

版本 4.7.1

发布日期:2016 年 6 月 10 日

早期版本中已解决的已知问题

  • 修复了延长带有私有子网的 VPC 中启动的集群的启动时间的问题。此错误仅影响使用 Amazon EMR 4.7.0 发行版启动的集群。

  • 修复了在 Amazon EMR 中错误处理针对使用 Amazon EMR 4.7.0 发行版启动的集群的文件列表的问题。

版本 4.7.0

重要

Amazon EMR 4.7.0 已弃用。请改用 Amazon EMR 4.7.1 或更高版本。

发布日期:2016 年 6 月 2 日

特征

此版本提供以下功能:

  • 已添加 Apache Phoenix 4.7.0

  • 已添加 Apache Tez 0.8.3

  • 已升级到 HBase 1.2.1

  • 已升级到 Mahout 0.12.0

  • 已升级到 Presto 0.147

  • 已将 Amazon SDK for Java 升级到 1.10.75

  • 已从 mapreduce.cluster.local.dir 中的 mapred-site.xml 属性中删除最终标志以允许用户以本地模式运行 Pig。

集群上可用的 Amazon Redshift JDBC 驱动程序

Amazon Redshift JDBC 驱动程序现在包含在 /usr/share/aws/redshift/jdbc 中。/usr/share/aws/redshift/jdbc/RedshiftJDBC41.jar 是与 JDBC 4.1 兼容的驱动程序,/usr/share/aws/redshift/jdbc/RedshiftJDBC4.jar 是与 JDBC 4.0 兼容的 Amazon Redshift 驱动程序。有关更多信息,请参阅 Amazon Redshift 管理指南中的配置 JDBC 连接

Java 8

OpenJDK 1.7 是用于所有应用程序 (Presto 除外) 的默认 JDK。但是,将同时安装 OpenJDK 1.7 和 1.8。有关如何为应用程序设置 JAVA_HOME 的信息,请参阅配置应用程序以使用 Java 8

早期版本中已解决的已知问题

  • 修复了一个内核问题,该问题已明显影响了 emr-4.6.0 中的 Amazon EMR 的吞吐量优化 HDD(st1)EBS 卷的性能。

  • 修复了在不选择 Hadoop 作为应用程序的情况下指定任何 HDFS 加密区域时集群将失败的问题。

  • 已将默认 HDFS 编写策略从 RoundRobin 更改为 AvailableSpaceVolumeChoosingPolicy。未通过 RoundRobin 配置正确利用某些卷,这将导致核心节点失败且 HDFS 不可靠。

  • 修复了与 EMRFS CLI 有关的问题,此问题将在创建默认 DynamoDB 元数据表以获得一致视图时导致异常。

  • 修复了在分段重命名和复制操作期间可能发生在 EMRFS 中的死锁问题。

  • 修复了与 EMRFS 有关的问题,此问题导致 CopyPart 大小默认为 5 MB。默认值现已相应地设置为 128 MB。

  • 修复了与 Zeppelin upstart 配置有关的问题,此问题可能会阻止您停止服务。

  • 修复了与 Spark 和 Zeppelin 有关的问题,此问题会阻止您使用 s3a:// URI 方案,因为 /usr/lib/hadoop/hadoop-aws.jar 未在其各自的类路径中正确加载。

  • 已逆向移植 HUE-2484

  • 已从 Hue 3.9.0 (不存在 JIRA) 逆向移植 commit 来修复与 HBase 浏览器示例有关的问题。

  • 已逆向移植 HIVE-9073

版本 4.6.0

发布日期:2016 年 4 月 21 日

特征

此版本提供以下功能:

影响吞吐量优化 HDD(st1)EBS 卷类型的问题

Linux 内核版本 4.2 及更高版本中的问题将显著影响 EMR 的吞吐量优化 HDD (st1) EBS 卷上的性能。此版本 (emr-4.6.0) 使用内核版本 4.4.5,因此会受到影响。因此,如果您打算使用 st1 EBS 卷,我们建议您不要使用 emr-4.6.0。您可将 emr-4.5.0 或早期 Amazon EMR 发行版与 st1 配合使用,而不会产生影响。此外,我们将随将来版本一起提供修复程序。

Python 默认值

现在,默认情况下已安装 Python 3.4,但 Python 2.7 将保留系统默认值。您可以使用引导操作将 Python 3.4 配置为系统默认值;也可以使用配置 API 将 PYSPARK_PYTHON 导出设置为 /usr/bin/python3.4 分类中的 spark-env 以便影响 PySpark 所使用的 Python 版本。

Java 8

OpenJDK 1.7 是用于所有应用程序 (Presto 除外) 的默认 JDK。但是,将同时安装 OpenJDK 1.7 和 1.8。有关如何为应用程序设置 JAVA_HOME 的信息,请参阅配置应用程序以使用 Java 8

早期版本中已解决的已知问题

  • 修复了应用程序预置有时会因生成的密码导致随机失败的问题。

  • 之前,mysqld 已安装在所有节点上。现在,它仅安装在主实例上,而且仅在所选应用程序将 mysql-server 作为组件包含时安装。当前,以下应用程序包含 mysql-server 组件:HCatalog、Hive、Hue、Presto-Sandbox 和 Sqoop-Sandbox。

  • 已将 yarn.scheduler.maximum-allocation-vcores 从默认值 32 更改为 80,这修复了 emr-4.4.0 中引入的一个问题,此问题主要在使用集群(其内核实例类型为具有高于 32 的 YARN 虚拟内核集的几个大型实例类型之一)中的 maximizeResourceAllocation 选项时与 Spark 时一起出现;也就是说,此问题影响了 c4.8xlarge、cc2.8xlarge、hs1.8xlarge、i2.8xlarge、m2.4xlarge、r3.8xlarge、d2.8xlarge 或 m4.10xlarge。

  • s3-dist-cp 现在对所有 Amazon S3 提名使用 EMRFS,并且不再过渡到临时 HDFS 目录。

  • 修复了与针对客户端加密分段上载的异常处理有关的问题。

  • 添加了允许用户更改 Amazon S3 存储类的选项。默认情况下,此设置为 STANDARDemrfs-site 配置分类设置为 fs.s3.storageClass,可能的值为 STANDARDSTANDARD_IAREDUCED_REDUNDANCY。有关存储类的更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的存储类

版本 4.5.0

发布日期:2016 年 4 月 4 日

特征

此版本提供以下功能:

  • 已升级到 Spark 1.6.1

  • 已升级到 Hadoop 2.7.2

  • 已升级到 Presto 0.140

  • 添加了对 Amazon S3 服务器端加密的 Amazon KMS 支持。

早期版本中已解决的已知问题

  • 修复了重启节点后无法启动 MySQL 和 Apache 服务器的问题。

  • 修复了 IMPORT 未正确使用存储在 Amazon S3 中的非分区表的问题

  • 修复了与 Presto 有关的问题,此问题导致在写入 Hive 表时要求暂存目录为 /mnt/tmp 而不是 /tmp

版本 4.4.0

发布日期:2016 年 3 月 14 日

特征

此版本提供以下功能:

  • 已添加 HCatalog 1.0.0

  • 已添加 Sqoop-Sandbox 1.4.6

  • 已升级到 Presto 0.136

  • 已升级到 Zeppelin 0.5.6

  • 已升级到 Mahout 0.11.1

  • 默认情况下已启用 dynamicResourceAllocation

  • 已添加针对此版本的所有配置分类的表。有关更多信息,请参阅配置应用程序中的“配置分类”表。

早期版本中已解决的已知问题

  • 修复了 maximizeResourceAllocation 设置不为 YARN ApplicationMaster 进程守护程序预留足够内存的问题。

  • 修复了遇到的与自定义 DNS 相关的问题。如果 resolve.conf 中的任何条目位于提供的自定义条目之前,则自定义条目不可解析。此行为受 VPC 中集群的影响,其中,默认 VPC 名称服务器已作为顶部条目插入 resolve.conf 中。

  • 修复了默认 Python 已移至版本 2.7 且未为该版本安装 boto 的问题。

  • 修复了 YARN 容器和 Spark 应用程序将生成唯一 Ganglia 轮询数据库 (rrd) 文件的问题,此问题会导致第一个附加到实例的磁盘填满。修复后,YARN 容器级别指标和 Spark 应用程序级别指标均已禁用。

  • 修复了导致日志推送程序中删除所有空日志文件夹的问题。这会造成 Hive CLI 无法记录日志,因为日志推送程序已删除 user 下的 /var/log/hive 空文件夹。

  • 修复了影响 Hive 导入的问题,此问题影响分区并导致导入期间出现错误。

  • 修复了 EMRFS 和 s3-dist-cp 未正确处理包含句点的存储桶名称的问题。

  • 更改了 EMRFS 中的行为,以便在启用版本控制的存储桶中,不会持续创建 _$folder$ 标记文件,从而有助于提高启用版本控制的存储桶的性能。

  • 更改了 EMRFS 中的行为,使它不会使用说明文件,已启用客户端加密的情况除外。如果您要在使用客户端加密时删除说明文件,可将 emrfs-site.xml 属性 fs.s3.cse.cryptoStorageMode.deleteInstructionFiles.enabled 设置为 true。

  • 更改了 YARN 日志聚合以在聚合目标中将日志保留两天。默认目标为您的集群的 HDFS 存储。如果您要更改此持续时间,请在创建集群时使用 yarn.log-aggregation.retain-seconds 配置分类来更改 yarn-site 的值。与往常一样,您可以在创建集群时使用 log-uri 参数将应用程序日志保存到 Amazon S3。

已应用的修补程序

此版本中包含了来自开源项目的以下修补程序:

版本 4.3.0

发布日期:2016 年 1 月 19 日

特征

此版本提供以下功能:

  • 已升级到 Hadoop 2.7.1

  • 已升级到 Spark 1.6.0

  • 已将 Ganglia 升级到 3.7.2

  • 已将 Presto 升级到 0.130

spark.dynamicAllocation.enabled 设置为 true 时,Amazon EMR 已对其做出一些更改;默认情况下,此项为 false。如果设置为 true,则会影响由 maximizeResourceAllocation 设置设定的默认值:

  • spark.dynamicAllocation.enabled设为 true,则 spark.executor.instances 将不被 maximizeResourceAllocation 设置。

  • 目前,spark.driver.memory 设置根据集群中的实例类型进行配置,与 spark.executors.memory 设置的方式类似。但是,由于 Spark 驱动应用程序可在主实例或核心实例之一上运行 (例如在 YARN 客户端和集群模式下分别进行),spark.driver.memory 设置根据更小实例类型的实例类型,在两个实例组之间进行。

  • 目前,spark.default.parallelism 设置为 YARN 容器可用的 CPU 内核数的两倍。在上一版本中,这是该值的一半。

  • 为 Spark YARN 过程预留的内存开销计算精确性被优化,从而使得 Spark 可用内存总量略有增加 (即spark.executor.memory)。

早期版本中已解决的已知问题

  • 默认情况下,现已启用 YARN 日志聚合。

  • 修复了在启用 YARN 日志聚合后日志未推送至集群的 Amazon S3 日志存储桶的问题。

  • YARN 容器大小现跨所有节点类型具有新的最小值 32。

  • 修复了与 Ganglia 有关的问题,此问题已导致大型集群中主节点上的磁盘 I/O 过多。

  • 修复了在关闭集群时阻止应用程序日志推送至 Amazon S3 的问题。

  • 修复了 EMRFS CLI 中导致某些命令失败的问题。

  • 修复了与 Zeppelin 有关的问题,此问题已阻止依赖项在基础 SparkContext 中加载。

  • 修复了因发出尝试添加实例的调整大小命令导致的问题。

  • 修复了 Hive 中的问题,此问题导致 CREATE TABLE AS SELECT 对 Amazon S3 进行过多的列表调用。

  • 修复了在安装 Hue、Oozie 和 Ganglia 时无法正常预置大型集群的问题。

  • 修复了 s3-dist-cp 中的问题,此问题导致即使在失败并出现错误的情况下仍将返回零退出代码。

已应用的修补程序

此版本中包含了来自开源项目的以下修补程序:

版本 4.2.0

发布日期:2015 年 11 月 18 日

特征

此版本提供以下功能:

  • 已添加 Ganglia 支持

  • 已升级到 Spark 1.5.2

  • 已升级到 Presto 0.125

  • 已将 Oozie 升级到 4.2.0

  • 已将 Zeppelin 升级到 0.5.5

  • 已将 Amazon SDK for Java 升级到 1.10.27

早期版本中已解决的已知问题

  • 修复了与 EMRFS CLI 有关的问题,此问题发导致不使用默认元数据表名称。

  • 修复了在 Amazon S3 中使用 ORC 支持的表时遇到的问题。

  • 修复了遇到的 Python 版本在 Spark 配置中不匹配的问题。

  • 修复了 YARN 节点状态因 VPC 中集群的 DNS 问题导致无法报告的问题。

  • 修复了 YARN 已停用节点从而导致应用程序挂起且无法计划新应用程序时遇到的问题。

  • 修复了集群终止且状态为 TIMED_OUT_STARTING 时遇到的问题。

  • 修复了在其它内部版本中包含 EMRFS Scala 依赖项时遇到的问题。Scala 依赖项已被删除。