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

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

最新内容

本主题介绍 Amazon EMR 6.x 系列和 5.x 系列的当前版本中的功能和已解决的问题。这些发行说明也可以在版本 6.3.0 选项卡版本 5.33.0 选项卡,以及应用程序版本、组件版本和此版本的可用配置分类。

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

有关回到发布版本 4.2.0 的早期版本发布说明,请参阅Amazon EMR 最新历史

注意

25 个以前的亚马逊 EMR 发行版现在使用Amazon签名版本 4 对发送到 Amazon S3 的请求进行身份验证。使用Amazon签名版本 2 正在淘汰,在 2020 年 6 月 24 日后创建的新 S3 存储桶将不支持签名版本 2 签名的请求。现有存储桶将会继续支持签名版本 2。我们建议您迁移到支持签名版本 4 的 Amazon EMR 版本,这样您可以继续访问新的 S3 存储桶,避免工作负载中断。

现在提供支持签名版本 4 的以下 EMR 版本:emr-4.7.4、emr-4.8.5、emr-4.9.6、emr-4.10.1、emr-5.1.1、emr-5.2.3、emr -5.3.2、emr-5.4.1、emr-5.5.4、emr-5.6.1、emr-5.7.1、emr-5.8.3、emr-5.9.1、emr-5.10.1、emr-5.11 .4、emr-5.12.3、emr-5.13.1、emr-5.14.2、emr-5.15.1、emr-5.16.1、emr-5.17.2、emr-5.18.1、emr-5.19.1、emr-5.20.1 和 emr-5.21.2。EMR 版本 5.22.0 及更高版本已支持签名版本 4。

如果您使用 Amazon EMR 应用程序(如 Apache Spark、Apache Hive、Presto),则无需更改您的应用程序代码,即可使用签名版本 4。如果您使用的是 Amazon EMR 中未包含的自定义应用程序,则可能需要更新代码,才能使用签名版本 4。有关可能需要哪些更新的更多信息,请参阅从签名版本 2 转向签名版本 4

6.3.0 版(亚马逊 EMR 6.x 系列的最新版本)

从初始发布日期的第一个区域开始,新的 Amazon EMR 版本将在几天内在不同的区域提供。在此期间,您所在地区可能无法提供最新版本。

以下发布说明包括有关亚马逊 EMR 发布版本 6.3.0 的信息。更改是相对于 6.2.0 而言。

首次发布日期:2021 年 5 月 12 日

支持的应用程序

  • Amazon SDK for Java版本 1.11.977

  • CloudWatch 水槽版本 2.1.0

  • DynamoDB 连接器 4.16.0 版本

  • 欧洲金融资源调查系统版本 2.46.0

  • Amazon emR 好东西 3.2.0 版本

  • Amazon EMR Kinesis 连接器 3.5.0 版

  • Amazon EMR 记录服务器版本 2.0.0

  • Amazon EMR 脚本 2.5.0 版本

  • Fink 版本 1.12.1

  • Ganglia 版本 3.7.2

  • AmazonGlue Hive MetaStore 3.2.0 版本

  • Hadoop 版本 3.2.1-1-1-3

  • HBase 版本 2.2.2.2.6-6-6-0--1

  • HBase-操作员-工具 1.0.0

  • HCatalog 版本 3.1.2-amzn-0

  • Hive 版本 3.1.2-2-2-2-4

  • 胡迪版本 0.7.0-0-0-0-0

  • Hue 4.9.0 版本 4.9.0

  • Java JDK 版本科雷特托 8.282.08.1(构建 1.8.0_282-b08)

  • JupyterHub 1.2.0 版

  • Livy 版本 0.7.0-incubating

  • MxNet 1.7.0 版本 1.7.0

  • Oozie 版本 5.2.1

  • Phoenix 版本 5.0.0

  • Pig 0.17.0 版本 0.17.0

  • Presto 版本 0.245.1-amzn-0

  • PrestoSQL 版本 350

  • 阿帕奇游侠 KMS (多主透明加密) 版本 2.0.0

  • 游侠插件 2.0.1-1-0

  • Rener S3-插件 1.1.0

  • SageMaker Spark SDK 1.4.1 版本

  • 斯卡拉版本 2.12.10(OpenJDK 64 位服务器虚拟机,Java 1.8.0_282)

  • 火花版本 3.1.1-1-0

  • S火Plue 0.4.1

  • Sqoop 版本 1.4.7

  • TensorFlow 版本 2.4.1

  • Tez 0.9.2 版本 0.9.2

  • Zeppelin 版本 0.9.0

  • Zookeeper 版本 3.4.14

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

新功能

  • 借助 Amazon EMR 6.3.0,您可以启动与 Apache Ranger 本地集成的集群。Apache Ranger 是一个开源框架,用于跨 Hadoop 平台启用、监控和管理全面的数据安全。有关更多信息,请参阅 。Apache 游侠。通过本机集成,您可以携带自己的 Apache Ranger,在 Amazon EMR 上强制实施细粒度的数据访问控制。请参阅将亚马逊 EMR 与阿帕奇游侠集成Amazon EMR 管理指南中的。

  • 限定范围的托管策略:对齐Amazon最佳实践中,Amazon EMR 引入了 v2 EMR 范围的默认托管策略,作为将弃用的策略的替代品。请参阅Amazon EMR 托管策略

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

更改、增强和已解决的问题

  • 文件输出提交器默认算法已从 v2 算法更改为开源 Spark 3.1 中的 v1 算法。有关更多信息,请参阅此阿帕奇火花 JIRA 门票。

  • 亚马逊 EMR 恢复到 v2 算法,这是先前 Amazon EMR 6.x 版本中使用的默认算法,以防止性能回归。要恢复开源 Spark 3.1 行为,请将spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version1。开源 Spark 进行了此更改,因为文件输出提交器算法 v2 中的任务提交不是原子的,在某些情况下可能会导致输出数据正确性问题。但是,算法 v1 中的任务提交也不是原子的。在某些情况下,任务提交包括在重命名之前执行的删除操作。这可能会导致无提示的数据正确性问题。

已知问题

  • 对于亚马逊 EMR 6.3.0 和 6.2.0 私有子网集群,您不能访问 Ganglia Web 用户界面。您将收到 “访问被拒绝 (403)” 错误。其他 Web 用户界面,如火花、色相、JupyterHub、齐柏林、利维和 Tez 工作正常。公有子网群集上的 Ganglia Web UI 访问也正常工作。要解决该问题,请在主节点上重新启动 httpd 服务与sudo systemctl restart httpd

  • 何时Amazon已启用 Glue 数据目录,使用 Spark 访问Amazon具有空字符串位置 URI 的 Glue 数据库可能会失败。这种情况发生在早期的亚马逊 EMR 版本中,但 SPARK-31709 (https://issues.apache.org/jira/browse/SPARK-31709) 使其适用于更多案例。例如,当在默认Amazon位置 URI 为空字符串的 Glue 数据库,spark.sql("CREATE TABLE mytest (key string) location '/table_path';")失败,并显示消息 “无法从空字符串创建路径”。要变通解决此问题,请手动设置AmazonGlue 合数据库,然后使用 Spark 在这些数据库中创建表。

  • 在亚马逊 EMR 6.3.0 中,PrestoSQL 已从版本 343 升级到版本 350。有两个与此版本更改相关的开放源代码安全相关的更改。基于文件的目录访问控制从denyallow当未定义表、架构或会话属性规则时。此外,基于文件的系统访问控制更改为支持没有定义目录规则的文件。在这种情况下,允许对目录的所有访问。

    有关更多信息,请参阅 。第 344 号发布 (二零零年十月九日)

  • 请注意,每个人都可以读取 Hadoop 用户目录(/home/hadoop)。它具有 Unix 755(drwxr-xr-x)目录权限,允许像 Hive 这样的框架进行读取访问。您可以将文件放在 /home/hadoop 及其子目录中,但请注意这些目录的权限以保护敏感信息。

  • 较早的 AL2 上的 “最大打开文件” 限制较低。 亚马逊 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 基于旧版本的 OFAMZON Linux 2 (AL2),当使用默认 AMI 创建 EMR 集群时,这些版本的下限设置为 “最大打开文件”。提交 Spark 作业时,打开的文件下限会导致 “打开的文件过多” 错误。在受影响的 EMR 版本中,亚马逊 EMR 默认 AMI 对于 “最大打开文件” 的默认限制设置为 4096,低于最新亚马逊 Linux 2 AMI 中的 65536 文件限制。当 Spark 驱动程序和执行程序尝试打开超过 4096 个文件时,“最大打开文件” 的下限设置会导致 Spark 作业失败。要修复此问题,Amazon EMR 有一个引导操作 (BA) 脚本,用于在创建集群时调整 ulimit 设置。亚马逊 EMR 6.3.0 和 5.33.0 版将包括一个具有更高 “最大打开文件” 设置的永久修复程序。

    此问题的以下解决方法允许您显式将实例控制器 ulimit 设置为最多 65536 文件。

    从命令行显式设置 ulimit

    1. 编辑/etc/systemd/system/instance-controller.service将以下参数添加到 “服务” 部分。

      LimitNOFILE=65536

      LimitNPROC=65536

    2. 重新启动实例 Controller

      $ sudo systemctl daemon-reload

      $ sudo systemctl restart instance-controller

    使用引导操作设置 u限制 (BA)

    您还可以使用引导操作 (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
  • 重要

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

5.33.0 版(亚马逊 EMR 5.x 系列的最新版本)

从初始发布日期的第一个区域开始,新的 Amazon EMR 版本将在几天内在不同的区域提供。在此期间,您所在地区可能无法提供最新版本。

以下发布说明包括有关亚马逊 EMR 发布版本 5.33.0 的信息。更改是相对于 5.32.0 而言。

首次发布日期:2021 年 4 月 19 日

Upgrades

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

  • 已将升级到版本 1.11.970

  • 已将 EMRFS 升级到版本 2.46.0

  • 已将 EMR 已将 ER 更新为版本 2.14.0

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

  • 已将 EMR S3 分区 CP 升级到版本 2.18.0

  • 已将 EMR 秘密代理升级到版本 1.8.0

  • 已将 Flink 升级到版本 1.12.1

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

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

  • 已将 Hudi 升级到版本 0.7.0

  • 已将 Hue 升级到版本 4.9.0

  • 已将 OpenCV 升级到版本 4.5.0

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

  • 已将 R 升级到版本 4.0.2

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

  • 已将 TensorFlow 升级到版本 2.4.1

  • 已将 Zeppelin 升级到版本 0.9.0

更改、增强和已解决的问题

新功能

  • 亚马逊 EMR-5.33 支持新的 Amazon EC2 实例类型:c5a、c5ad、c6gd、m6gd、d3、m5zn、r5b、r6gd。请参阅支持的实例类型

已知问题

  • 较早的 AL2 上的 “最大打开文件” 限制较低。 亚马逊 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 基于旧版本的 OFAMZON Linux 2 (AL2),当使用默认 AMI 创建 EMR 集群时,这些版本的下限设置为 “最大打开文件”。提交 Spark 作业时,打开的文件下限会导致 “打开的文件过多” 错误。在受影响的 EMR 版本中,亚马逊 EMR 默认 AMI 对于 “最大打开文件” 的默认限制设置为 4096,低于最新亚马逊 Linux 2 AMI 中的 65536 文件限制。当 Spark 驱动程序和执行程序尝试打开超过 4096 个文件时,“最大打开文件” 的下限设置会导致 Spark 作业失败。要修复此问题,Amazon EMR 有一个引导操作 (BA) 脚本,用于在创建集群时调整 ulimit 设置。亚马逊 EMR 6.3.0 和 5.33.0 版将包括一个具有更高 “最大打开文件” 设置的永久修复程序。

    此问题的以下解决方法允许您显式将实例控制器 ulimit 设置为最多 65536 文件。

    从命令行显式设置 ulimit

    1. 编辑/etc/systemd/system/instance-controller.service将以下参数添加到 “服务” 部分。

      LimitNOFILE=65536

      LimitNPROC=65536

    2. 重新启动实例 Controller

      $ sudo systemctl daemon-reload

      $ sudo systemctl restart instance-controller

    使用引导操作设置 u限制 (BA)

    您还可以使用引导操作 (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
  • 重要

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

  • 控制台支持以创建一个安全配置来指定Amazon“GovCloud” 地区目前不支持游侠集成选项。安全配置可以使用 CLI 完成。请参阅创建 EMR 安全配置中的Amazon EMR 管理指南

  • 限定范围的托管策略:对齐Amazon最佳实践中,Amazon EMR 引入了 v2 EMR 范围的默认托管策略,作为将弃用的策略的替代品。请参阅Amazon EMR 托管策略