Amazon EMR 6.x 发布版本 - Amazon EMR
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Amazon EMR 6.x 发布版本

下方的每个选项卡列出了每个 Amazon EMR 6.x 发布版本中可用的应用程序版本、发布说明、组件版本和配置分类。

Amazon EMR 6.x 系列支持 Apache Hadoop 3。有关每个发布版本中的应用程序版本的综合图,请参阅 Amazon EMR 6.x 发布版本中的应用程序版本 (PNG)

New Amazon EMR release versions are made available in different regions over a period of several days, beginning with the first region on the initial release date. The latest release version may not be available in your region during this period.

6.1.0

6.1.0申请版本

此版本支持以下应用程序:FlinkGangliaHadoopHBaseHCatalogHiveHueJupyterHubLivyMahoutMXNetOoziePhoenixPigPrestoSparkSqoopTensorFlowTezZeppelinZooKeeper

下图描述了此版本的 Amazon EMR 中提供的应用程序版本以及前四个 Amazon EMR 发布版本中的应用程序版本。

有关每个发布版本的 Amazon EMR 的应用程序版本的全面历史记录,请参见下面的示意图:

6.1.0版本说明

以下发布说明包含有关 Amazon EMR 发布版本 6.1.0 的信息。更改是相对于 6.1.0 而言的。

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

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

支持的应用程序

  • AWS 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

  • 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 开始支持 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。有关更多信息,请参阅配置 Docker 集成

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

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

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

    • 单主集群和多主集群都支持 PrestoSQL。在多主集群上,运行 PrestoSQL 或 PrestoDB 需要外部 Hive 元存储。请参阅具有多个主节点的 EMR 集群中支持的应用程序

  • 在 Apache Hadoop 和带有 Docker 的 Apache Spark 上的 ECR 自动身份验证支持:Spark 用户可以使用来自 Docker Hub 和 Amazon Elastic Container Registry (Amazon ECR) 的 Docker 映像来定义环境和库依赖关系。

    配置 Docker使用 Amazon EMR 6.0.0 通过 Docker 运行 Spark 应用程序

  • EMR 支持 Apache Hive ACID 事务:Amazon EMR 6.1.0 添加了对 Hive ACID 事务的支持,因此它符合数据库的 ACID 属性。借助此功能,您可以对 Hive 托管表以及 Amazon Simple Storage Service (Amazon S3) 中的数据运行 INSERT、UPDATE、DELETE 和 MERGE 操作。这是下面这些使用案例的关键功能:例如,流式处理摄取、数据重新声明、使用 MERGE 进行批量更新以及缓慢更改维度。有关更多信息(包括配置示例和使用案例),请参阅 Amazon EMR 支持 Apache Hive ACID 事务

更改、增强和解决的问题

  • 在 EMR 6.0.0 上不支持 Apache Flink,但在使用 Flink 1.11.0 的 EMR 6.1.0 上支持它。这是第一个正式支持 Hadoop 3 的 Flink 版本。请参阅 Apache Flink 1.11.0 版本公告

  • 已从默认 EMR 6.1.0 程序捆绑包中删除了 Ganglia。

已知问题

  • 如果使用 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 垃圾回收

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

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

  • Known issue in clusters with multiple master nodes and Kerberos authentication

    If you run clusters with multiple master nodes and Kerberos authentication in EMR releases 5.20.0 and later, you may encounter problems with cluster operations such as scale down or step submission, after the cluster has been running for some time. The time period depends on the Kerberos ticket validity period that you defined. The scale-down problem impacts both automatic scale-down and explicit scale down requests that you submitted. Additional cluster operations can also be impacted.

    Workaround:

    • SSH as hadoop user to the lead master node of the EMR cluster with multiple master nodes.

    • Run the following command to renew Kerberos ticket for hadoop user.

      kinit -kt <keytab_file> <principal>

      Typically, the keytab file is located at /etc/hadoop.keytab and the principal is in the form of hadoop/<hostname>@<REALM>.

    注意

    This workaround will be effective for the time period the Kerberos ticket is valid. This duration is 10 hours by default, but can configured by your Kerberos settings. You must re-run the above command once the Kerberos ticket expires.

6.1.0组件版本

下面列出了Amazon EMR 随此发布版本一起安装的组件。一些组件作为大数据应用程序包的一部分安装。其他组件是 Amazon EMR 独有的,并且已为系统流程和功能安装这些组件。它们通常以 emraws 开头。最新的 Amazon EMR 发布版本中的大数据应用程序包通常是在社区中找到的最新版本。我们尽快在 Amazon EMR 中提供社区发布版本。

Amazon EMR 中的某些组件与社区版本不同。这些组件具有以下形式的 CommunityVersion-amzn-EmrVersion 的版本标签。EmrVersion 从 0 开始。例如,如果已对名为 myapp-component 的版本 2.2 的开源社区组件进行三次修改以包含在不同的 Amazon EMR 发布版本中,则其发布版本将列出为 2.2-amzn-2

组件 版本 Description
aws-sagemaker-spark-sdk 1.3.0 Amazon SageMaker Spark 开发工具包
emr-ddb 4.14.0 适用于 Hadoop 生态系统应用程序的 Amazon DynamoDB 连接器。
emr-goodies 3.1.0 适用于 Hadoop 生态系统的方便易用的库。
emr-kinesis 3.5.0 适用于 Hadoop 生态系统应用程序的 Amazon Kinesis 连接器。
emr-s3-dist-cp emrfs 针对 Amazon S3 优化的分布式复制应用程序。
emr-s3-select 2.0.0 EMR S3 Select 连接器
emrfs 2.42.0 适用于 Hadoop 生态系统应用程序的 Amazon S3 连接器。
flink-client 1.11.0 Apache Flink 命令行客户端脚本和应用程序。
ganglia-monitor 3.7.2 适用于 Hadoop 生态系统应用程序的嵌入式 Ganglia 代理以及 Ganglia 监控代理。
ganglia-metadata-collector 3.7.2 用于从 Ganglia 监控代理中聚合指标的 Ganglia 元数据收集器。
ganglia-web 3.7.1 用于查看由 Ganglia 元数据收集器收集的指标的 Web 应用程序。
hadoop-client 3.2.1-amzn-1 Hadoop 命令行客户端,如“hdfs”、“hadoop”或“yarn”。
hadoop-hdfs-datanode 3.2.1-amzn-1 用于存储数据块的 HDFS 节点级服务。
hadoop-hdfs-library 3.2.1-amzn-1 HDFS 命令行客户端和库
hadoop-hdfs-namenode 3.2.1-amzn-1 用于跟踪文件名和数据块位置的 HDFS 服务。
hadoop-hdfs-journalnode 3.2.1-amzn-1 用于管理 HA 集群上的 Hadoop 文件系统日志的 HDFS 服务。
hadoop-httpfs-server 3.2.1-amzn-1 用于 HDFS 操作的 HTTP 终端节点。
hadoop-kms-server 3.2.1-amzn-1 基于 Hadoop 的 KeyProvider API 的加密密钥管理服务器。
hadoop-mapred 3.2.1-amzn-1 用于运行 MapReduce 应用程序的 MapReduce 执行引擎库。
hadoop-yarn-nodemanager 3.2.1-amzn-1 用于管理单个节点上的容器的 YARN 服务。
hadoop-yarn-resourcemanager 3.2.1-amzn-1 用于分配和管理集群资源与分布式应用程序的 YARN 服务。
hadoop-yarn-timeline-server 3.2.1-amzn-1 用于检索 YARN 应用程序的当前信息和历史信息的服务。
hbase-hmaster 2.2.5 适用于负责协调区域和执行管理命令的 HBase 集群的服务。
hbase-region-server 2.2.5 用于服务于一个或多个 HBase 区域的服务。
hbase-client 2.2.5 HBase 命令行客户端。
hbase-rest-server 2.2.5 用于向 HBase 提供 RESTful HTTP 终端节点的服务。
hbase-thrift-server 2.2.5 用于向 HBase 提供 Thrift 终端节点的服务。
hcatalog-client 3.1.2-amzn-2 用于操作 hcatalog-server 的“hcat”命令行客户端。
hcatalog-server 3.1.2-amzn-2 用于为分布式应用程序提供 HCatalog、表和存储管理层的服务。
hcatalog-webhcat-server 3.1.2-amzn-2 用于向 HCatalog 提供 REST 接口的 HTTP 终端节点。
hive-client 3.1.2-amzn-2 Hive 命令行客户端。
hive-hbase 3.1.2-amzn-2 Hive-hbase 客户端。
hive-metastore-server 3.1.2-amzn-2 用于访问 Hive 元存储 (一个用于存储 Hadoop 操作中的 SQL 的元数据的语义存储库) 的服务。
hive-server2 3.1.2-amzn-2 用于将 Hive 查询作为 Web 请求接受的服务。
hudi 0.5.2-孵育-amzn-2 增量处理框架,以支持低延迟和高效率的数据管道。
hudi-presto 0.5.2-孵育-amzn-2 用于运行 Presto 以及 Hudl 的捆绑库。
hudi-prestosql 0.5.2-孵育-amzn-2 与Hudi一起运行PrestoBMC的软件包库。
乌迪山谷 0.5.2-孵育-amzn-2 使用Hudi运行Spark的软件包库。
hue-server 4.7.1 用于使用 Hadoop 生态系统应用程序分析数据的 Web 应用程序
jupyterhub 1.1.0 Jupyter 笔记本的多用户服务器
livy-server 0.7.0-incubating 用于与 Apache Spark 交互的 REST 接口
nginx 1.12.1 nginx [引擎 x] 是 HTTP 和反向代理服务器
mxnet。 1.6.0 用于深度学习的灵活的、可扩展且高效的库。
mariadb-server 5.5.64 MariaDB 数据库服务器。
nvidia-cuda 9.2.88 Nvidia 驱动程序和 Cuda 工具包
oozie-client 5.2.0 Oozie 命令行客户端。
oozie-server 5.2.0 用于接受 Oozie 工作流请求的服务。
opencv 4.3.0 开源计算机视觉库。
phoenix-library 5.0.0-HBase-2.0 服务器和客户端的 phoenix 库
phoenix-query-server 5.0.0-HBase-2.0 向 Avatica API 提供 JDBC 访问权限以及协议缓冲区和 JSON 格式访问权限的轻量级服务器
presto-coordinator 0.232 用于在 presto-worker 之中接受查询并管理查询的服务。
presto-worker 0.232 用于执行查询的各个部分的服务。
presto-client 0.232 Presto 命令行客户端,安装在 HA 集群的备用主服务器(未启动 Presto 服务器)上。
prestosql-协调器 338 为prestoql-workers接受查询和管理查询执行提供服务。
prestosql-工人 338 用于执行查询的各个部分的服务。
prestosql-客户 338 Presto 命令行客户端,安装在 HA 集群的备用主服务器(未启动 Presto 服务器)上。
pig-client 0.17.0 Pig 命令行客户端。
-r 3.4.3 用于统计计算的 R 项目
ranger-kms-server 2.0.0 Apache Ranger 密钥管理系统
spark-client 3.0.0-amzn-0 Spark 命令行客户端。
spark-history-server 3.0.0-amzn-0 用于查看完整的 Spark 应用程序的生命周期的已记录事件的 Web UI。
spark-on-yarn 3.0.0-amzn-0 适用于 YARN 的内存中执行引擎。
spark-yarn-slave 3.0.0-amzn-0 YARN 从属项所需的 Apache Spark 库。
sqoop-client 1.4.7 Apache Sqoop 命令行客户端。
tensorflow 2.1.0 适用于高性能数值计算的 TensorFlow 开源软件库。
tez-on-yarn 0.9.2 tez YARN 应用程序和库。
webserver 2.4.41+ Apache HTTP 服务器。
zeppelin-server 0.9.0-预览1 支持交互式数据分析的基于 Web 的笔记本电脑。
zookeeper-server 3.4.14 用于维护配置信息、命名、提供分布式同步以及提供组服务的集中式服务。
zookeeper-client 3.4.14 ZooKeeper 命令行客户端。

6.1.0配置分类

配置分类使您能够自定义应用程序。这些分类通常对应于应用程序的配置 XML 文件,例如 hive-site.xml。有关更多信息,请参阅 配置应用程序

emr-6.1.0分类
分类 Description

capacity-scheduler

更改 Hadoop 的 capacity-scheduler.xml 文件中的值。

container-executor

更改 Hadoop YARN 的 container-executor.cfg 文件中的值。

container-log4j

更改 Hadoop YARN 的 container-log4j.properties 文件中的值。

core-site

更改 Hadoop 的 core-site.xml 文件中的值。

emrfs-site

更改 EMRFS 设置。

flink-conf

更改 flink-conf.yaml 设置。

flink-log4j

更改 Flink log4j.properties 设置。

flink-log4j-yarn-session

更改 Flink log4j-yarn-session.properties 设置。

flink-log4j-cli

更改 Flink log4j-cli.properties 设置。

hadoop-env

更改适用于所有 Hadoop 组件的 Hadoop 环境中的值。

hadoop-log4j

更改 Hadoop 的 log4j.properties 文件中的值。

hadoop-ssl-server

更改 hadoop ssl 服务器配置

hadoop-ssl-client

更改 hadoop ssl 客户端配置

hbase

适用于 Apache HBase 的 Amazon EMR 辅助设置。

hbase-env

更改 HBase 环境中的值。

hbase-log4j

更改 HBase 的 hbase-log4j.properties 文件中的值。

hbase-metrics

更改 HBase 的 hadoop-metrics2-hbase.properties 文件中的值。

hbase-policy

更改 HBase 的 hbase-policy.xml 文件中的值。

hbase-site

更改 HBase 的 hbase-site.xml 文件中的值。

hdfs-encryption-zones

配置 HDFS 加密区域。

hdfs-env

更改 HDFS 环境中的值。

hdfs-site

更改 HDFS 的 hdfs-site.xml 中的值。

hcatalog-env

更改 HCatalog 的环境中的值。

hcatalog-server-jndi

更改 HCatalog 的 jndi.properties 中的值。

hcatalog-server-proto-hive-site

更改 HCatalog 的 proto-hive-site.xml 中的值。

hcatalog-webhcat-env

更改 HCatalog WebHCat 的环境中的值。

hcatalog-webhcat-log4j2

更改 HCatalog WebHCat 的 log4j2.properties 中的值。

hcatalog-webhcat-site

更改 HCatalog WebHCat 的 webhcat-site.xml 文件中的值。

hive

适用于 Apache Hive 的 Amazon EMR 辅助设置。

hive-beeline-log4j2

更改 Hive 的 beeline-log4j2.properties 文件中的值。

hive-parquet-logging

更改 Hive parquet-logging.properties 文件中的值。

hive-env

更改 Hive 环境中的值。

hive-exec-log4j2

更改 Hive 的 hive-exec-log4j2.properties 文件中的值。

hive-llap-daemon-log4j2

更改 Hive 的 llap-daemon-log4j2.properties 文件中的值。

hive-log4j2

更改 Hive 的 hive-log4j2.properties 文件中的值。

hive-site

更改 Hive 的 hive-site.xml 文件中的值

hiveserver2-site

更改 Hive Server2 的 hiveserver2-site.xml 文件中的值

hue-ini

更改 Hue 的 ini 文件中的值

httpfs-env

更改 HTTPFS 环境中的值。

httpfs-site

更改 Hadoop 的 httpfs-site.xml 文件中的值。

hadoop-kms-acls

更改 Hadoop 的 kms-acls.xml 文件中的值。

hadoop-kms-env

更改 Hadoop KMS 环境中的值。

hadoop-kms-log4j

更改 Hadoop 的 kms-log4j.properties 文件中的值。

hadoop-kms-site

更改 Hadoop 的 kms-site.xml 文件中的值。

hudi-env

更改 HDFS 环境中的值。

jupyter-notebook-conf

更改 Jupyter Notebook 的 jupyter_notebook_config.py 文件中的值。

jupyter-hub-conf

更改 JupyterHubs 的 jupyterhub_config.py 文件中的值。

jupyter-s3-conf

配置 Jupyter Notebook S3 持久性。

jupyter-sparkmagic-conf

更改 Sparkmagic 的 config.json 文件中的值。

livy-conf

更改 Livy 的 livy.conf 文件中的值。

livy-env

更改 Livy 环境中的值。

livy-log4j

更改 Livy log4j.properties 设置。

mapred-env

更改 MapReduce 应用程序的环境中的值。

mapred-site

更改 MapReduce 应用程序的 mapred-site.xml 文件中的值。

oozie-env

更改 Oozie 的环境中的值。

oozie-log4j

更改 Oozie 的 oozie-log4j.properties 文件中的值。

oozie-site

更改 Oozie 的 oozie-site.xml 文件中的值。

phoenix-hbase-metrics

更改 Phoenix 的 hadoop-metrics2-hbase.properties 文件中的值。

phoenix-hbase-site

更改 Phoenix 的 hbase-site.xml 文件中的值。

phoenix-log4j

更改 Phoenix 的 log4j.properties 文件中的值。

phoenix-metrics

更改 Phoenix 的 hadoop-metrics2-phoenix.properties 文件中的值。

pig-env

更改 Pig 环境中的值。

pig-properties

更改 Pig 的 pig.properties 文件中的值。

pig-log4j

更改 Pig 的 log4j.properties 文件中的值。

presto-log

更改 Presto 的 log.properties 文件中的值。

presto-config

更改 Presto 的 config.properties 文件中的值。

presto-password-authenticator

更改 Presto 的 password-authenticator.properties 文件中的值。

presto-env

更改 Presto 的 presto-env.sh 文件中的值。

presto-node

更改 Presto 的 node.properties 文件中的值。

presto-connector-blackhole

更改 Presto 的 blackhole.properties 文件中的值。

presto-connector-cassandra

更改 Presto 的 cassandra.properties 文件中的值。

presto-connector-hive

更改 Presto 的 hive.properties 文件中的值。

presto-connector-jmx

更改 Presto 的 jmx.properties 文件中的值。

presto-connector-kafka

更改 Presto 的 kafka.properties 文件中的值。

presto-connector-localfile

更改 Presto 的 localfile.properties 文件中的值。

presto-connector-memory

更改 Presto 的 memory.properties 文件中的值。

presto-connector-mongodb

更改 Presto 的 mongodb.properties 文件中的值。

presto-connector-mysql

更改 Presto 的 mysql.properties 文件中的值。

presto-connector-postgresql

更改 Presto 的 postgresql.properties 文件中的值。

presto-connector-raptor

更改 Presto 的 raptor.properties 文件中的值。

presto-connector-redis

更改 Presto 的 redis.properties 文件中的值。

presto-connector-redshift

更改 Presto 的 redshift.properties 文件中的值。

presto-connector-tpch

更改 Presto 的 tpch.properties 文件中的值。

presto-connector-tpcds

更改 Presto 的 tpcds.properties 文件中的值。

prestosql-log

更改 Presto 的 log.properties 文件中的值。

prestosql-配置

更改 Presto 的 config.properties 文件中的值。

prestosql-password-authenticator

更改 Presto 的 password-authenticator.properties 文件中的值。

prestosql-env

更改 Presto 的 presto-env.sh 文件中的值。

prestosql-node

更改PrestoQL的node.properties文件中的值。

prestosql-接头-黑孔

更改PrestoModel的blackhole.properties文件中的值。

prestosql-接头-Cassandra

更改PrestoQL的cassandra.properties文件中的值。

prestosql-接头-hive

更改PrestoQL的hive.properties文件中的值。

prestosql-contor-jmx

更改PrestoQLjmx.properties文件中的值。

prestosql-接头-kafka

更改PrestoTahco的kafka.properties文件中的值。

prestosql-contor-localfile

更改PrestoModel'slocalfile.properties文件中的值。

prestosql-接头-内存

更改Prestoq的memory.properties文件中的值。

prestosql-接头-Mongodb

更改PrestoQLQ的mongodb.properties文件中的值。

prestosql-接头-mysql

更改PrestoQLmysql.properties文件中的值。

prestosql-接头-postgresql

更改PrestoQL的postgresql.properties文件中的值。

prestosql-接头-分离器

更改PrestoBMC的raptor.properties文件中的值。

prestosql-接头-redis

更改PrestoBMC的redis.properties文件中的值。

prestosql-接头-红移

更改PrestoModel的redshift.properties文件中的值。

prestosql-接头-tpch

更改PrestoQL的tpch.properties文件中的值。

prestosql-接头-tpcs

更改PrestoQL的tpcs.properties文件中的值。

ranger-kms-dbks-site

更改 Ranger KMS 的 dbks-site.xml 文件中的值。

ranger-kms-site

更改 Ranger KMS 的 ranger-kms-site.xml 文件中的值。

ranger-kms-env

更改 Ranger KMS 环境中的值。

ranger-kms-log4j

更改 Ranger KMS 的 kms-log4j.properties 文件中的值。

ranger-kms-db-ca

更改 S3 上用于与 Ranger KMS 进行 MySQL SSL 连接的 CA 文件的值。

spark

适用于 Apache Spark 的 Amazon EMR 辅助设置。

spark-defaults

更改 Spark 的 spark-defaults.conf 文件中的值。

spark-env

更改 Spark 环境中的值。

spark-hive-site

更改 Spark 的 hive-site.xml 文件中的值

spark-log4j

更改 Spark 的 log4j.properties 文件中的值。

spark-metrics

更改 Spark 的 metrics.properties 文件中的值。

sqoop-env

更改 Sqoop 的环境中的值。

sqoop-oraoop-site

更改 Sqoop OraOop 的 oraoop-site.xml 文件中的值。

sqoop-site

更改 Sqoop 的 sqoop-site.xml 文件中的值。

tez-site

更改 Tez 的 tez-site.xml 文件中的值。

yarn-env

更改 YARN 环境中的值。

yarn-site

更改 YARN 的 yarn-site.xml 文件中的值。

zeppelin-env

更改 Zeppelin 环境中的值。

zookeeper-config

更改 ZooKeeper 的 zoo.cfg 文件中的值。

zookeeper-log4j

更改 ZooKeeper 的 log4j.properties 文件中的值。

6.0.0

6.0.0应用程序版本

此发布版本支持以下应用程序:GangliaHadoopHBaseHCatalogHiveHueJupyterHubLivyMXNetOoziePhoenixPrestoSparkTensorFlowTezZeppelinZooKeeper

下图描述了此版本的 Amazon EMR 中提供的应用程序版本以及前四个 Amazon EMR 发布版本中的应用程序版本。

有关每个发布版本的 Amazon EMR 的应用程序版本的全面历史记录,请参见下面的示意图:

6.0.0发行说明

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

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

支持的应用程序

  • AWS 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 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。有关更多信息,请参阅了解主节点、核心节点和任务节点

已知问题

  • Spark 交互式 shell(包括 PySpark、SparkR 和 spark-shell)不支持将 Docker 与其他库一起使用。

  • 要将 Python 3 与 Amazon EMR 版本 6.0.0 一起使用,您必须将 PATH 添加到 yarn.nodemanager.env-whitelist

  • 当您使用 AWS Glue 数据目录作为 Hive 的元存储时,不支持长时间和处理 (LLAP) 功能。

  • 将 Amazon EMR 6.0.0 与 Spark 和 Docker 集成结合使用时,您需要将集群中的实例配置为相同的实例类型和相同数量的 EBS 卷,以避免在使用 Docker 运行时提交 Spark 作业时失败。

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

  • Known issue in clusters with multiple master nodes and Kerberos authentication

    If you run clusters with multiple master nodes and Kerberos authentication in EMR releases 5.20.0 and later, you may encounter problems with cluster operations such as scale down or step submission, after the cluster has been running for some time. The time period depends on the Kerberos ticket validity period that you defined. The scale-down problem impacts both automatic scale-down and explicit scale down requests that you submitted. Additional cluster operations can also be impacted.

    Workaround:

    • SSH as hadoop user to the lead master node of the EMR cluster with multiple master nodes.

    • Run the following command to renew Kerberos ticket for hadoop user.

      kinit -kt <keytab_file> <principal>

      Typically, the keytab file is located at /etc/hadoop.keytab and the principal is in the form of hadoop/<hostname>@<REALM>.

    注意

    This workaround will be effective for the time period the Kerberos ticket is valid. This duration is 10 hours by default, but can configured by your Kerberos settings. You must re-run the above command once the Kerberos ticket expires.

6.0.0组件版本

下面列出了Amazon EMR 随此发布版本一起安装的组件。一些组件作为大数据应用程序包的一部分安装。其他组件是 Amazon EMR 独有的,并且已为系统流程和功能安装这些组件。它们通常以 emraws 开头。最新的 Amazon EMR 发布版本中的大数据应用程序包通常是在社区中找到的最新版本。我们尽快在 Amazon EMR 中提供社区发布版本。

Amazon EMR 中的某些组件与社区版本不同。这些组件具有以下形式的 CommunityVersion-amzn-EmrVersion 的版本标签。EmrVersion 从 0 开始。例如,如果已对名为 myapp-component 的版本 2.2 的开源社区组件进行三次修改以包含在不同的 Amazon EMR 发布版本中,则其发布版本将列出为 2.2-amzn-2

组件 版本 描述
aws-sagemaker-spark-sdk 1.2.6 Amazon SageMaker Spark 开发工具包
emr-ddb 4.14.0 适用于 Hadoop 生态系统应用程序的 Amazon DynamoDB 连接器。
emr-goodies 3.0.0 适用于 Hadoop 生态系统的方便易用的库。
emr-kinesis 3.5.0 适用于 Hadoop 生态系统应用程序的 Amazon Kinesis 连接器。
emr-s3-dist-cp emrfs 针对 Amazon S3 优化的分布式复制应用程序。
emr-s3-select 1.5.0 EMR S3 Select 连接器
emrfs 2.39.0 适用于 Hadoop 生态系统应用程序的 Amazon S3 连接器。
ganglia-monitor 3.7.2 适用于 Hadoop 生态系统应用程序的嵌入式 Ganglia 代理以及 Ganglia 监控代理。
ganglia-metadata-collector 3.7.2 用于从 Ganglia 监控代理中聚合指标的 Ganglia 元数据收集器。
ganglia-web 3.7.1 用于查看由 Ganglia 元数据收集器收集的指标的 Web 应用程序。
hadoop-client 3.2.1-amzn-0 Hadoop 命令行客户端,如“hdfs”、“hadoop”或“yarn”。
hadoop-hdfs-datanode 3.2.1-amzn-0 用于存储数据块的 HDFS 节点级服务。
hadoop-hdfs-library 3.2.1-amzn-0 HDFS 命令行客户端和库
hadoop-hdfs-namenode 3.2.1-amzn-0 用于跟踪文件名和数据块位置的 HDFS 服务。
hadoop-hdfs-journalnode 3.2.1-amzn-0 用于管理 HA 集群上的 Hadoop 文件系统日志的 HDFS 服务。
hadoop-httpfs-server 3.2.1-amzn-0 用于 HDFS 操作的 HTTP 终端节点。
hadoop-kms-server 3.2.1-amzn-0 基于 Hadoop 的 KeyProvider API 的加密密钥管理服务器。
hadoop-mapred 3.2.1-amzn-0 用于运行 MapReduce 应用程序的 MapReduce 执行引擎库。
hadoop-yarn-nodemanager 3.2.1-amzn-0 用于管理单个节点上的容器的 YARN 服务。
hadoop-yarn-resourcemanager 3.2.1-amzn-0 用于分配和管理群集资源与分布式应用程序的 YARN 服务。
hadoop-yarn-timeline-server 3.2.1-amzn-0 用于检索 YARN 应用程序的当前信息和历史信息的服务。
hbase-hmaster 2.2.3 适用于负责协调区域和执行管理命令的 HBase 集群的服务。
hbase-region-server 2.2.3 用于服务于一个或多个 HBase 区域的服务。
hbase-client 2.2.3 HBase 命令行客户端。
hbase-rest-server 2.2.3 用于向 HBase 提供 RESTful HTTP 终端节点的服务。
hbase-thrift-server 2.2.3 用于向 HBase 提供 Thrift 终端节点的服务。
hcatalog-client 3.1.2-amzn-0 用于操作 hcatalog-server 的“hcat”命令行客户端。
hcatalog-server 3.1.2-amzn-0 用于为分布式应用程序提供 HCatalog、表和存储管理层的服务。
hcatalog-webhcat-server 3.1.2-amzn-0 用于向 HCatalog 提供 REST 接口的 HTTP 终端节点。
hive-client 3.1.2-amzn-0 Hive 命令行客户端。
hive-hbase 3.1.2-amzn-0 Hive-hbase 客户端。
hive-metastore-server 3.1.2-amzn-0 用于访问 Hive 元存储 (一个用于存储 Hadoop 操作中的 SQL 的元数据的语义存储库) 的服务。
hive-server2 3.1.2-amzn-0 用于将 Hive 查询作为 Web 请求接受的服务。
hudi 0.5.0-incubating-amzn-1 增量处理框架,以支持低延迟和高效率的数据管道。
hudi-presto 0.5.0-incubating-amzn-1 用于运行 Presto 以及 Hudl 的捆绑库。
hue-server 4.4.0 用于使用 Hadoop 生态系统应用程序分析数据的 Web 应用程序
jupyterhub 1.0.0 Jupyter 笔记本的多用户服务器
livy-server 0.6.0-incubating 用于与 Apache Spark 交互的 REST 接口
nginx 1.12.1 nginx [引擎 x] 是 HTTP 和反向代理服务器
mxnet 1.5.1 用于深度学习的灵活的、可扩展且高效的库。
mariadb-server 5.5.64+ MariaDB 数据库服务器。
nvidia-cuda 9.2.88 Nvidia 驱动程序和 Cuda 工具包
oozie-client 5.1.0 Oozie 命令行客户端。
oozie-server 5.1.0 用于接受 Oozie 工作流请求的服务。
opencv 3.4.0 开源计算机视觉库。
phoenix-library 5.0.0-HBase-2.0 服务器和客户端的 phoenix 库
phoenix-query-server 5.0.0-HBase-2.0 向 Avatica API 提供 JDBC 访问权限以及协议缓冲区和 JSON 格式访问权限的轻量级服务器
presto-coordinator 0.230 用于在 presto-worker 之中接受查询并管理查询的服务。
presto-worker 0.230 用于执行查询的各个部分的服务。
presto-client 0.230 Presto 命令行客户端,安装在 HA 集群的备用主服务器(未启动 Presto 服务器)上。
r 3.4.3 用于统计计算的 R 项目
spark-client 2.4.4 Spark 命令行客户端。
spark-history-server 2.4.4 用于查看完整的 Spark 应用程序的生命周期的已记录事件的 Web UI。
spark-on-yarn 2.4.4 适用于 YARN 的内存中执行引擎。
spark-yarn-slave 2.4.4 YARN 从属项所需的 Apache Spark 库。
tensorflow 1.14.0 适用于高性能数值计算的 TensorFlow 开源软件库。
tez-on-yarn 0.9.2 tez YARN 应用程序和库。
webserver 2.4.41+ Apache HTTP 服务器。
zeppelin-server 0.9.0-SNAPSHOT 支持交互式数据分析的基于 Web 的笔记本电脑。
zookeeper-server 3.4.14 用于维护配置信息、命名、提供分布式同步以及提供组服务的集中式服务。
zookeeper-client 3.4.14 ZooKeeper 命令行客户端。

6.0.0配置分类

配置分类使您能够自定义应用程序。这些分类通常对应于应用程序的配置 XML 文件,例如 hive-site.xml。有关更多信息,请参阅 配置应用程序

emr-6.0.0 分类
分类 描述

capacity-scheduler

更改 Hadoop 的 capacity-scheduler.xml 文件中的值。

container-executor

更改 Hadoop YARN 的 container-executor.cfg 文件中的值。

container-log4j

更改 Hadoop YARN 的 container-log4j.properties 文件中的值。

core-site

更改 Hadoop 的 core-site.xml 文件中的值。

emrfs-site

更改 EMRFS 设置。

hadoop-env

更改适用于所有 Hadoop 组件的 Hadoop 环境中的值。

hadoop-log4j

更改 Hadoop 的 log4j.properties 文件中的值。

hadoop-ssl-server

更改 hadoop ssl 服务器配置

hadoop-ssl-client

更改 hadoop ssl 客户端配置

hbase

适用于 Apache HBase 的 Amazon EMR 辅助设置。

hbase-env

更改 HBase 环境中的值。

hbase-log4j

更改 HBase 的 hbase-log4j.properties 文件中的值。

hbase-metrics

更改 HBase 的 hadoop-metrics2-hbase.properties 文件中的值。

hbase-policy

更改 HBase 的 hbase-policy.xml 文件中的值。

hbase-site

更改 HBase 的 hbase-site.xml 文件中的值。

hdfs-encryption-zones

配置 HDFS 加密区域。

hdfs-env

更改 HDFS 环境中的值。

hdfs-site

更改 HDFS 的 hdfs-site.xml 中的值。

hcatalog-env

更改 HCatalog 的环境中的值。

hcatalog-server-jndi

更改 HCatalog 的 jndi.properties 中的值。

hcatalog-server-proto-hive-site

更改 HCatalog 的 proto-hive-site.xml 中的值。

hcatalog-webhcat-env

更改 HCatalog WebHCat 的环境中的值。

hcatalog-webhcat-log4j2

更改 HCatalog WebHCat 的 log4j2.properties 中的值。

hcatalog-webhcat-site

更改 HCatalog WebHCat 的 webhcat-site.xml 文件中的值。

hive

适用于 Apache Hive 的 Amazon EMR 辅助设置。

hive-beeline-log4j2

更改 Hive 的 beeline-log4j2.properties 文件中的值。

hive-parquet-logging

更改 Hive parquet-logging.properties 文件中的值。

hive-env

更改 Hive 环境中的值。

hive-exec-log4j2

更改 Hive 的 hive-exec-log4j2.properties 文件中的值。

hive-llap-daemon-log4j2

更改 Hive 的 llap-daemon-log4j2.properties 文件中的值。

hive-log4j2

更改 Hive 的 hive-log4j2.properties 文件中的值。

hive-site

更改 Hive 的 hive-site.xml 文件中的值

hiveserver2-site

更改 Hive Server2 的 hiveserver2-site.xml 文件中的值

hue-ini

更改 Hue 的 ini 文件中的值

httpfs-env

更改 HTTPFS 环境中的值。

httpfs-site

更改 Hadoop 的 httpfs-site.xml 文件中的值。

hadoop-kms-acls

更改 Hadoop 的 kms-acls.xml 文件中的值。

hadoop-kms-env

更改 Hadoop KMS 环境中的值。

hadoop-kms-log4j

更改 Hadoop 的 kms-log4j.properties 文件中的值。

hadoop-kms-site

更改 Hadoop 的 kms-site.xml 文件中的值。

jupyter-notebook-conf

更改 Jupyter Notebook 的 jupyter_notebook_config.py 文件中的值。

jupyter-hub-conf

更改 JupyterHubs 的 jupyterhub_config.py 文件中的值。

jupyter-s3-conf

配置 Jupyter Notebook S3 持久性。

jupyter-sparkmagic-conf

更改 Sparkmagic 的 config.json 文件中的值。

livy-conf

更改 Livy 的 livy.conf 文件中的值。

livy-env

更改 Livy 环境中的值。

livy-log4j

更改 Livy log4j.properties 设置。

mapred-env

更改 MapReduce 应用程序的环境中的值。

mapred-site

更改 MapReduce 应用程序的 mapred-site.xml 文件中的值。

oozie-env

更改 Oozie 的环境中的值。

oozie-log4j

更改 Oozie 的 oozie-log4j.properties 文件中的值。

oozie-site

更改 Oozie 的 oozie-site.xml 文件中的值。

phoenix-hbase-metrics

更改 Phoenix 的 hadoop-metrics2-hbase.properties 文件中的值。

phoenix-hbase-site

更改 Phoenix 的 hbase-site.xml 文件中的值。

phoenix-log4j

更改 Phoenix 的 log4j.properties 文件中的值。

phoenix-metrics

更改 Phoenix 的 hadoop-metrics2-phoenix.properties 文件中的值。

presto-log

更改 Presto 的 log.properties 文件中的值。

presto-config

更改 Presto 的 config.properties 文件中的值。

presto-password-authenticator

更改 Presto 的 password-authenticator.properties 文件中的值。

presto-env

更改 Presto 的 presto-env.sh 文件中的值。

presto-node

更改 Presto 的 node.properties 文件中的值。

presto-connector-blackhole

更改 Presto 的 blackhole.properties 文件中的值。

presto-connector-cassandra

更改 Presto 的 cassandra.properties 文件中的值。

presto-connector-hive

更改 Presto 的 hive.properties 文件中的值。

presto-connector-jmx

更改 Presto 的 jmx.properties 文件中的值。

presto-connector-kafka

更改 Presto 的 kafka.properties 文件中的值。

presto-connector-localfile

更改 Presto 的 localfile.properties 文件中的值。

presto-connector-memory

更改 Presto 的 memory.properties 文件中的值。

presto-connector-mongodb

更改 Presto 的 mongodb.properties 文件中的值。

presto-connector-mysql

更改 Presto 的 mysql.properties 文件中的值。

presto-connector-postgresql

更改 Presto 的 postgresql.properties 文件中的值。

presto-connector-raptor

更改 Presto 的 raptor.properties 文件中的值。

presto-connector-redis

更改 Presto 的 redis.properties 文件中的值。

presto-connector-redshift

更改 Presto 的 redshift.properties 文件中的值。

presto-connector-tpch

更改 Presto 的 tpch.properties 文件中的值。

presto-connector-tpcds

更改 Presto 的 tpcds.properties 文件中的值。

ranger-kms-dbks-site

更改 Ranger KMS 的 dbks-site.xml 文件中的值。

ranger-kms-site

更改 Ranger KMS 的 ranger-kms-site.xml 文件中的值。

ranger-kms-env

更改 Ranger KMS 环境中的值。

ranger-kms-log4j

更改 Ranger KMS 的 kms-log4j.properties 文件中的值。

ranger-kms-db-ca

更改 S3 上用于与 Ranger KMS 进行 MySQL SSL 连接的 CA 文件的值。

recordserver-env

更改 EMR RecordServer 环境中的值。

recordserver-conf

更改 EMR RecordServer erver.properties 文件中的值。

recordserver-log4j

更改 EMR RecordServer log4j.properties 文件中的值。

spark

适用于 Apache Spark 的 Amazon EMR 辅助设置。

spark-defaults

更改 Spark 的 spark-defaults.conf 文件中的值。

spark-env

更改 Spark 环境中的值。

spark-hive-site

更改 Spark 的 hive-site.xml 文件中的值

spark-log4j

更改 Spark 的 log4j.properties 文件中的值。

spark-metrics

更改 Spark 的 metrics.properties 文件中的值。

tez-site

更改 Tez 的 tez-site.xml 文件中的值。

yarn-env

更改 YARN 环境中的值。

yarn-site

更改 YARN 的 yarn-site.xml 文件中的值。

zeppelin-env

更改 Zeppelin 环境中的值。

zookeeper-config

更改 ZooKeeper 的 zoo.cfg 文件中的值。

zookeeper-log4j

更改 ZooKeeper 的 log4j.properties 文件中的值。