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

Amazon EMR 新增功能历史记录

下面提供了所有 Amazon EMR 发行版的发布说明。有关每个版本的全面版本信息,请参阅 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.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 配置:

    设置 说明

    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 是此发行版中的实验性功能。建议不要在生产部署中使用这些功能。

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

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

    Apache YARN 时间轴服务器版本 1 和 1.5 可能会对非常活跃的大型 EMR 群集造成性能问题,尤其是 yarn.resourcemanager.system-metrics-publisher.enabled=true,这是 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>

发行版 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

  • 已升级到版本 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 发行版修复了 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.32.1 版修复了托管扩展无法完成或导致应用程序出故障的问题。

  • 升级了组件版本。

  • 有关组件版本的列表,请参阅本指南中的关于 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 安全配置

  • 在使用 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

发行版 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 发行版修复了 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 6.2.1 版修复了托管扩展无法完成或导致应用程序出故障的问题。

  • 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 身份验证中的已知问题

    如果在 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.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

  • 已升级到版本 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 发行版修复了 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.1 版修复了托管扩展无法完成或导致应用程序出故障的问题。

  • 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 身份验证中的已知问题

    如果在 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 票证过期后,您必须重新运行上述命令。

  • 在使用 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

发行版 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 及更高版本时,您可以启用 EMR 托管扩展,以根据工作负载自动增加或减少集群中实例或单位的数量。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。请参阅具有多个主节点的 EMR 集群中支持的应用程序

  • 支持在 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 发行版修复了 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 6.1.1 版修复了托管扩展无法完成或导致应用程序出故障的问题。

  • 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 身份验证中的已知问题

    如果在 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 发行版修复了 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 6.0.1 版修复了托管扩展无法完成或导致应用程序出故障的问题。

  • 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 身份验证中的已知问题

    如果在 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 笔记本问题,该问题会导致 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,也请在创建集群时将 Presto 选择为要安装的应用程序。

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

    如果在 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.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 托管扩展,以根据工作负载自动增加或减少集群中实例或单位的数量。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,也请在创建集群时将 Presto 选择为要安装的应用程序。

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

    如果在 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 已修复这一问题。

发行版 5.29.0

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

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

升级

  • 已升级到版本 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 身份验证中的已知问题

    如果在 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 身份验证中的已知问题

    如果在 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、工具和基础设施。有关更多信息,请参阅 Amazon Outposts 上的 EMR 集群

  • (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 身份验证中的已知问题

    如果在 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 笔记本。有关更多信息,请参阅《Amazon EMR 管理指南》中的将 Git 存储库与 Amazon EMR Notebooks 关联

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

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

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

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

已知问题

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

    如果在 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 现在可用于具有多个主节点的 EMR 集群。

已知问题

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

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

    如果在 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 身份验证中的已知问题

    如果在 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 日

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

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

已知问题

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

    如果在 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 身份验证中的已知问题

    如果在 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 资源管理器、HDFS 名称节点、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 身份验证中的已知问题

    如果在 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 Signature Version 4 来针对 Amazon S3 的请求进行身份验证。除非发布说明指出需专门使用签名版本 4,否则早期 Amazon EMR 发行版在某些情况下使用 Amazon Signature Version 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 身份验证中的已知问题

    如果在 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 日

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

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

已知问题

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

    如果在 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 身份验证中的已知问题

    如果在 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 或更高版本中,当 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 身份验证中的已知问题

    如果在 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 笔记本的托管环境。它支持适用于 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-java-sdk ruby gem。如果需要,可以使用 gem install aws-java-sdk 进行安装。此外,还可以安装特定组件。例如:gem install aws-java-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 5.18.0 开始,您可以使用 Amazon EMR 构件存储库构建针对特定 Amazon EMR 发行版提供的准确版本的库和依赖项的任务代码。有关更多信息,请参阅使用 Amazon EMR 项目存储库检查依赖项

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

发布版本 5.17.1

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

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

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

  • 更新了 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 笔记本。手动编辑每个用户的 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

  • 已升级到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 日

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

  • 更新了 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 根卷大小时,集群启动会失败。作为解决方法,请从 aws emr create-cluster 使用 Amazon CLI 命令并指定一个更大的 --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 根卷大小时,集群启动会失败。作为解决方法,请从 aws emr create-cluster 使用 Amazon CLI 命令并指定一个更大的 --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 外壳。

    • 推出了一个新的 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 与 Amazon EMR 上的 Presto 结合使用,需要您启用对 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。有关更多信息,请参阅http://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。有关更多信息,请参阅http://www.amazonaws.cn/amazon-linux-ami/2016.09-release-notes/

版本 5.0.0

发布日期:2017 年 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。有关更多信息,请参阅http://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 依赖项已被删除。