Amazon EMR
Amazon EMR 版本指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

最新消息

本文档适用于 Amazon EMR 的 版本 4.x 和 5.x。对于有关 Amazon EMR AMI 版本 2.x 和 3.x 的信息,请参阅 Amazon EMR 开发人员指南 (PDF)

本章概述了当前版本的 Amazon EMR 中的功能和已解决的问题以及版本 4.2.0 之前的版本中有关此类信息的历史记录。

版本 5.11.1 (最新)

以下发行说明包括有关 Amazon EMR 版本 5.11.1 发行的信息。更改与 Amazon EMR 5.11.0 版本相关。

首次发布日期:2018 年 1 月 22 日

更改、增强和解决的问题

已知问题

  • MXNet 不包含 OpenCV 库。

  • 默认情况下,Hive 2.3.2 设置 hive.compute.stats.using.query=true。这会导致查询从现有统计数据而不是直接从数据中获取数据,这可能会造成混淆。例如,如果您有一个包含 hive.compute.stats.using.query=true 的表并且将新文件上传到表 LOCATION,则在该表上运行 SELECT COUNT(*) 查询会返回来自统计数据的计数,而不是选择已添加的行。

    作为解决方法,请使用 ANALYZE TABLE 命令收集新的统计数据,或者设置 hive.compute.stats.using.query=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 Java 1.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 开发人员指南 中的将 Apache Spark 与 Amazon SageMaker 结合使用

已知问题

  • MXNet 不包含 OpenCV 库。

  • 默认情况下,Hive 2.3.2 设置 hive.compute.stats.using.query=true。这会导致查询从现有统计数据而不是直接从数据中获取数据,这可能会造成混淆。例如,如果您有一个包含 hive.compute.stats.using.query=true 的表并且将新文件上传到表 LOCATION,则在该表上运行 SELECT COUNT(*) 查询会返回来自统计数据的计数,而不是选择已添加的行。

    作为解决方法,请使用 ANALYZE TABLE 命令收集新的统计数据,或者设置 hive.compute.stats.using.query=false。有关更多信息,请参阅 Apache Hive 文档中的 Hive 中的统计数据

版本 5.10.0

以下发行说明包括有关 Amazon EMR 版本 5.10.0 发行的信息。更改与 Amazon EMR 5.9.0 版本相关。

升级

以下应用程序和组件已在此版本中进行升级以包含以下版本。

  • AWS 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.stats.using.query=true。这会导致查询从现有统计数据而不是直接从数据中获取数据,这可能会造成混淆。例如,如果您有一个包含 hive.compute.stats.using.query=true 的表并且将新文件上传到表 LOCATION,则在该表上运行 SELECT COUNT(*) 查询会返回来自统计数据的计数,而不是选择已添加的行。

    作为解决方法,请使用 ANALYZE TABLE 命令收集新的统计数据,或者设置 hive.compute.stats.using.query=false。有关更多信息,请参阅 Apache Hive 文档中的 Hive 中的统计数据

版本 5.9.0

以下发行说明包括有关 Amazon EMR 版本 5.9.0 发行的信息。更改与 Amazon EMR 5.8.0 版本相关。

发行日期:2017 年 10 月 5 日

最近功能更新时间:2017 年 10 月 12 日

升级

以下应用程序和组件已在此版本中进行升级以包含以下版本。

  • AWS 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 查询编辑器的 AWS Glue Data Catalog 支持。

    • 默认情况下,Hue 中的超级用户可以访问的 Amazon EMR IAM 角色可以访问的所有文件。新建用户不会自动拥有对 Amazon S3filebrowser 的访问权限,并且必须为其组启用 filebrowser.s3_access 权限。

  • 解决造成使用 AWS Glue Data Catalog 创建的底层 JSON 数据不可访问的问题。

已知问题

  • 当安装了所有应用程序且未更改默认 Amazon EBS 根卷大小时,集群启动会失败。作为解决方法,请从 AWS CLI 使用 aws emr create-cluster 命令或指定一个更大的 --ebs-root-volume-size 参数。

  • 默认情况下,Hive 2.3.0 设置 hive.compute.stats.using.query=true。这会导致查询从现有统计数据而不是直接从数据中获取数据,这可能会造成混淆。例如,如果您有一个包含 hive.compute.stats.using.query=true 的表并且将新文件上传到表 LOCATION,则在该表上运行 SELECT COUNT(*) 查询会返回来自统计数据的计数,而不是选择已添加的行。

    作为解决方法,请使用 ANALYZE TABLE 命令收集新的统计数据,或者设置 hive.compute.stats.using.query=false。有关更多信息,请参阅 Apache Hive 文档中的 Hive 中的统计数据

版本 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 日

升级

以下应用程序和组件已在此版本中进行升级以包含以下版本:

  • AWS 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 EBS 根卷大小时,集群启动会失败。作为解决方法,请从 AWS CLI 使用 aws emr create-cluster 命令或指定一个更大的 --ebs-root-volume-size 参数。

  • 默认情况下,Hive 2.3.0 设置 hive.compute.stats.using.query=true。这会导致查询从现有统计数据而不是直接从数据中获取数据,这可能会造成混淆。例如,如果您有一个包含 hive.compute.stats.using.query=true 的表并且将新文件上传到表 LOCATION,则在该表上运行 SELECT COUNT(*) 查询会返回来自统计数据的计数,而不是选择已添加的行。

    作为解决方法,请使用 ANALYZE TABLE 命令收集新的统计数据,或者设置 hive.compute.stats.using.query=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。这是支持 Amazon EMR 5.0 版及更高版本中的 Spark 2.x 的第一个 Mahout 版本。

  • Spark 2.1.1

更改、增强和解决的问题

  • Presto

    • 添加了通过使用安全配置启用传输中加密,从而在 Presto 节点之间实现 SSL/TLS 安全通信的功能。有关更多信息,请参阅传输中的数据加密

    • 逆向移植了 Presto 7661,它向 EXPLAIN ANALYZE 语句添加 VERBOSE 选项,以报告有关查询计划的更详细、高低级别的统计数据。

版本 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 无法工作的问题。此外,还添加了使用 /etc/flink/conf/flink-conf.yamlflink-conf 配置类别中的 env.hadoop.conf.direnv.yarn.conf.dir 设置这些值的功能。

    • 推出了一个新的 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 -n 2 -d 将使用两个任务管理器在分离状态下启动长时间运行的 Flink 会话。

    • 解决了 (FLINK-6125) Commons httpclient 在 Flink 1.2 中不再遮蔽的问题。

  • Presto

    • 添加了对 LDAP 身份验证的支持。在 Amazon EMR 上对 Presto 使用 LDAP 需要您启用对 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-site 分类中将 phoenix.client.localIndexUpgrade 配置设置为 false,然后将 SSH 设置为主节点以运行 psql [zookeeper] -1

  • 已升级到 Presto 0.166

  • 已升级到 Zeppelin 0.7.0

更改和增强功能

以下是对版本标签 emr-5.4.0 的 Amazon EMR 版本进行的更改:

版本 5.3.0

以下发行说明包括有关 Amazon EMR 5.3.0 版本的信息。更改与 Amazon EMR 5.2.1 版本相关。

发行日期:2017 年 1 月 26 日

升级

此版本提供以下升级:

  • 已升级到 Hive 2.1.1

  • 已升级到 Hue 3.11.0

  • 已升级到 Spark 2.1.0

  • 已升级到 Oozie 4.3.0

  • 已升级到 Flink 1.1.4

更改和增强功能

以下是对版本标签 emr-5.3.0 的 Amazon EMR 版本进行的更改:

  • Hue 新增补丁可使您使用 interpreters_shown_on_wheel 设置配置解释器在笔记本选择轮盘上最先显示的内容,而不受 hue.ini 文件中排序的限制。

  • 新增 hive-parquet-logging 配置分类,您可以将其用于配置 Hive parquet-logging.properties 文件中的值。

版本 5.2.2

以下发行说明包括有关 Amazon EMR 5.2.2 版本的信息。更改与 Amazon EMR 5.2.1 版本相关。

发行日期:2017 年 5 月 2 日

早期版本中已解决的已知问题

  • 逆向移植了 SPARK-194459,它将解决从包含 char/varchar 列的 ORC 表读取内容时可能失败的问题。

版本 5.2.1

以下发行说明包括有关 Amazon EMR 5.2.1 版本的信息。更改与 Amazon EMR 5.2.0 版本相关。

发行日期:2016 年 12 月 29 日

升级

此版本提供以下升级:

  • 已升级到 Presto 0.157.1。有关更多信息,请参阅 Presto 文档中的 Presto 发行说明

  • 已升级到 Zookeeper 3.4.9。有关更多信息,请参阅 Apache ZooKeeper 文档中的 ZooKeeper 发行说明

更改和增强功能

以下是对版本标签 emr-5.2.1 的 Amazon EMR 版本进行的更改:

  • 在 Amazon EMR 版本 4.8.3 及更高版本 (但不包括 5.0.0、5.0.3 和 5.2.0) 中增加了对 Amazon EC2 m4.16xlarge 实例类型的支持。

  • Amazon EMR 版本现在基于 Amazon Linux 2016.09。有关更多信息,请参阅 https://aws.amazon.com/amazon-linux-ami/2016.09-release-notes/

  • 现在,Flink 和 YARN 配置路径的位置默认在 /etc/default/flink 中设置,您在运行 flinkyarn-session.sh 驱动程序脚本启动 Flink 作业时,无需设置环境变量 FLINK_CONF_DIRHADOOP_CONF_DIR

  • 新增对 FlinkKinesisConsumer 类的支持。

早期版本中已解决的已知问题

  • 修复了 Hadoop 中的一个问题,即 ReplicationMonitor 线程可能会因为在大型集群中复制和删除同一个文件导致的竞争而卡住很长时间。

  • 修复了在作业状态未成功更新时 ControlledJob#toString 出现空指针异常 (NPE) 失败的问题。

版本 5.2.0

以下发行说明包括有关 Amazon EMR 5.2.0 版本的信息。更改与 Amazon EMR 5.1.0 版本相关。

发行日期:2016 年 11 月 21 日

更改和增强功能

此版本中提供了以下更改和增强功能:

  • 增加了适用于 HBase 的 Amazon S3 存储模式。

  • 使您能够为 HBase rootdir 指定 Amazon S3 位置。有关更多信息,请参阅 Amazon S3 上的 HBase

升级

此版本提供以下升级:

  • 已升级到 Spark 2.0.2

早期版本中已解决的已知问题

  • 修复了限制为仅 EBS 实例类型上的 2 TB 的 /mnt 的问题。

  • 修复了输出到相应的 .out 文件而不是常规 log4j 配置的 .log 文件 (每小时轮换一次) 的 instance-controller 和 logpusher 日志的问题。.out 文件不会轮换,因此这最终将填满 /emr 分区。此问题仅影响硬件虚拟机 (HVM) 实例类型。

版本 5.1.0

以下发行说明包括有关 Amazon EMR 5.1.0 版本的信息。更改与 Amazon EMR 5.0.0 版本相关。

发行日期:2016 年 11 月 3 日

更改和增强功能

此版本中提供了以下更改和增强功能:

  • 增加了对 Flink 1.1.3 的支持。

  • Presto 已作为 Hue 的记事本部分中的选项添加。

升级

此版本提供以下升级:

  • 已升级到 HBase 1.2.3

  • 已升级到 Zeppelin 0.6.2

早期版本中已解决的已知问题

  • 修复了带 ORC 文件的 Amazon S3 上的 Tez 查询的性能低于早期 Amazon EMR 4.x 版本中的性能的问题。

版本 5.0.3

以下发行说明包括有关 Amazon EMR 5.0.3 版本的信息。更改与 Amazon EMR 5.0.0 版本相关。

发行日期:2016 年 10 月 24 日

升级

此版本提供以下升级:

  • 已升级到 Hadoop 2.7.3

  • 已升级到 Presto 0.152.3,它包括对 Presto Web 界面的支持。可使用端口 8889 访问 Presto 协调器上的 Presto Web 界面。有关 Presto Web 界面的更多信息,请参阅 Presto 文档中的 Web 界面

  • 已升级到 Spark 2.0.1

  • Amazon EMR 版本现在基于 Amazon Linux 2016.09。有关更多信息,请参阅 https://aws.amazon.com/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

  • 添加了对安全配置的支持,这使您可以更轻松地创建和应用加密选项。有关更多信息,请参阅 Data Encryption

版本 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.2 版本相关。

发行日期:2016 年 10 月 24 日

升级

此版本提供以下升级:

  • 已升级到 Hadoop 2.7.3

  • 已升级到 Presto 0.152.3,它包括对 Presto Web 界面的支持。可使用端口 8889 访问 Presto 协调器上的 Presto Web 界面。有关 Presto Web 界面的更多信息,请参阅 Presto 文档中的 Web 界面

  • Amazon EMR 版本现在基于 Amazon Linux 2016.09。有关更多信息,请参阅 https://aws.amazon.com/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

  • 添加了对安全配置的支持,这使您可以更轻松地创建和应用加密选项。有关更多信息,请参阅 Data Encryption

版本 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 现在允许用户使用 fs.s3.consistent.dynamodb.endpoint 中的 emrfs-site.xml 属性来为其一致视图元数据配置自定义 DynamoDB 终端节点。

  • /usr/bin 中添加了一个名为 spark-example 的脚本,它将包装 /usr/lib/spark/spark/bin/run-example,因此您可以直接运行示例。例如,要运行 Spark 分配的附带的 SparkPi 示例,可从命令行或使用 spark-example SparkPi 100command-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

  • 已将 AWS 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 兼容的 Amazon Redshift 驱动程序,/usr/share/aws/redshift/jdbc/RedshiftJDBC4.jar 是与 JDBC 4.0 兼容的 Amazon Redshift 驱动程序。有关更多信息,请参阅 Amazon Redshift Cluster Management Guide 中的配置 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 导出设置为 spark-env 分类中的 /usr/bin/python3.4 以便影响 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 Developer Guide中的存储类

版本 4.5.0

发行日期:2016 年 4 月 4 日

功能

此版本提供以下功能:

  • 已升级到 Spark 1.6.1

  • 已升级到 Hadoop 2.7.2

  • 已升级到 Presto 0.140

  • 已添加对 Amazon S3 服务器端加密的 AWS 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 无法记录日志,因为日志推送程序已删除 /var/log/hive 下的空 user 文件夹。

  • 修复了影响 Hive 导入的问题,此问题影响分区并导致在导入过程中出现错误。

  • 修复了 EMRFS 和 s3-dist-cp 未正确处理包含句点的存储桶名称的问题。

  • 更改了 EMRFS 中的行为,以便在启用版本控制的存储桶中,不会持续创建 _$folder$ 标记文件,从而有助于提高启用版本控制的存储桶的性能。

  • 更改了 EMRFS 中的行为,使它不会使用说明文件,已启用客户端加密的情况除外。如果您要在使用客户端加密时删除说明文件,可将 emrfs-site.xml 属性 fs.s3.cse.cryptoStorageMode.deleteInstructionFiles.enabled 设置为 true。

  • 更改了 YARN 日志聚合以在聚合目标中将日志保留两天。默认目标为您的集群的 HDFS 存储。如果您要更改此持续时间,请在创建集群时使用 yarn-site 配置分类来更改 yarn.log-aggregation.retain-seconds 的值。与往常一样,您可以在创建集群时使用 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

  • 已将 AWS SDK for Java 升级到 1.10.27

早期版本中已解决的已知问题

  • 修复了与 EMRFS CLI 有关的问题,此问题发导致不使用默认元数据表名称。

  • 修复了在 Amazon S3 中使用 ORC 支持的表时遇到的问题。

  • 修复了遇到的 Python 版本在 Spark 配置中不匹配的问题。

  • 修复了 YARN 节点状态因 VPC 中集群的 DNS 问题导致无法报告的问题。

  • 修复了 YARN 已停用节点从而导致应用程序挂起且无法计划新应用程序时遇到的问题。

  • 修复了集群终止且状态为 TIMED_OUT_STARTING 时遇到的问题。

  • 修复了在其他内部版本中包含 EMRFS Scala 依赖项时遇到的问题。Scala 依赖项已被删除。