亚马逊EMR版本 5.31.1 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

亚马逊EMR版本 5.31.1

5.31.1 应用程序版本

此版本支持以下应用程序:Flink, Ganglia, HBase, HCatalog, Hadoop, Hive, Hudi, Hue, JupyterHub, Livy, MXNet, Mahout, Oozie, Phoenix, Pig, Presto, Spark, Sqoop, TensorFlow, Tez, ZeppelinZooKeeper.

下表列出了此版本的 Amazon 中可用的应用程序版本EMR和前三个亚马逊版本中的应用程序EMR版本(如果适用)。

要全面了解每个 Amazon 版本的应用程序版本历史记录EMR,请参阅以下主题:

应用程序版本信息
emr-5.31.1 emr-5.31.0 emr-5.30.2 emr-5.30.1
Amazon SDK适用于 Java 1.11.8521.11.8521.11.7591.11.759
Python 2.7、3.72.7、3.72.7、3.72.7、3.7
Scala 2.11.122.11.122.11.122.11.12
AmazonCloudWatchAgent - - - -
Delta - - - -
Flink1.11.01.11.01.10.01.10.0
Ganglia3.7.23.7.23.7.23.7.2
HBase1.4.131.4.131.4.131.4.13
HCatalog2.3.72.3.72.3.62.3.6
Hadoop2.10.02.10.02.8.52.8.5
Hive2.3.72.3.72.3.62.3.6
Hudi0.6.0-amzn-00.6.0-amzn-00.5.2-incubating0.5.2-incubating
Hue4.7.14.7.14.6.04.6.0
Iceberg - - - -
JupyterEnterpriseGateway - - - -
JupyterHub1.1.01.1.01.1.01.1.0
Livy0.7.00.7.00.7.00.7.0
MXNet1.6.01.6.01.5.11.5.1
Mahout0.13.00.13.00.13.00.13.0
Oozie5.2.05.2.05.2.05.2.0
Phoenix4.14.34.14.34.14.34.14.3
Pig0.17.00.17.00.17.00.17.0
Presto0.238.30.238.30.2320.232
Spark2.4.62.4.62.4.52.4.5
Sqoop1.4.71.4.71.4.71.4.7
TensorFlow2.1.02.1.01.14.01.14.0
Tez0.9.20.9.20.9.20.9.2
Trino(Prest SQL o) - - - -
Zeppelin0.8.20.8.20.8.20.8.2
ZooKeeper3.4.143.4.143.4.143.4.14

5.31.1 发布说明

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

更改、增强和解决的问题
  • 修复了 Amaz EMR on 集群上守护程序运行状况检查活动(例如收集YARN节点状态和HDFS节点状态)时,对利用率很高的大型集群的扩展请求失败的问题。之所以发生这种情况,是因为集群上的守护程序无法将节点的运行状况数据传送到内部 Ama EMR zon 组件。

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

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

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

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

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

  • 较新的Amazon EMR 版本通过降低亚马逊较旧AL2版本的 “最大打开文件数” 限制来解决这个问题EMR。亚马逊EMR发布的5.30.1、5.30.2、5.31.1、5.32.1、5.32.1、6.0.1、6.1.1、6.2.1、5.33.0、6.3.0及更高版本现在包含一个永久修复程序,其中包含一个具有更高的 “最大打开文件数” 设置的永久修复。

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

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

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

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

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

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

5.31.1 组件版本

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

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

组件 版本 描述
aws-sagemaker-spark-sdk1.4.0亚马逊 SageMaker Spark SDK
emr-ddb4.15.0适用于 Hadoop 生态系统应用程序的 Amazon DynamoDB 连接器。
emr-goodies2.13.0适用于 Hadoop 生态系统的方便易用的库。
emr-kinesis3.5.0适用于 Hadoop 生态系统应用程序的 Amazon Kinesis 连接器。
emr-s3-dist-cp2.15.0针对 Amazon S3 优化的分布式复制应用程序。
emr-s3-select1.6.0EMRS3Select 连接器
emrfs2.43.0适用于 Hadoop 生态系统应用程序的 Amazon S3 连接器。
flink-client1.11.0Apache Flink 命令行客户端脚本和应用程序。
flink-jobmanager-config1.11.0管理 Apache Flink EMR JobManager 节点上的资源。
ganglia-monitor3.7.2适用于 Hadoop 生态系统应用程序的嵌入式 Ganglia 代理以及 Ganglia 监控代理。
ganglia-metadata-collector3.7.2用于从 Ganglia 监控代理中聚合指标的 Ganglia 元数据收集器。
ganglia-web3.7.1用于查看由 Ganglia 元数据收集器收集的指标的 Web 应用程序。
hadoop-client2.10.0-amzn-0.1Hadoop 命令行客户端,如“hdfs”、“hadoop”或“yarn”。
hadoop-hdfs-datanode2.10.0-amzn-0.1HDFS用于存储区块的节点级服务。
hadoop-hdfs-library2.10.0-amzn-0.1HDFS命令行客户端和库
hadoop-hdfs-namenode2.10.0-amzn-0.1HDFS用于跟踪文件名和区块位置的服务。
hadoop-hdfs-journalnode2.10.0-amzn-0.1HDFS用于管理 HA 集群上的 Hadoop 文件系统日志的服务。
hadoop-httpfs-server2.10.0-amzn-0.1HTTPHDFS操作端点。
hadoop-kms-server2.10.0-amzn-0.1基于 Hadoop 的加密密钥管理服务器。 KeyProvider API
hadoop-mapred2.10.0-amzn-0.1MapReduce 用于运行 MapReduce 应用程序的执行引擎库。
hadoop-yarn-nodemanager2.10.0-amzn-0.1YARN用于管理单个节点上的容器的服务。
hadoop-yarn-resourcemanager2.10.0-amzn-0.1YARN用于分配和管理群集资源和分布式应用程序的服务。
hadoop-yarn-timeline-server2.10.0-amzn-0.1用于检索YARN应用程序的当前和历史信息的服务。
hbase-hmaster1.4.13为负责协调区域和执行管理命令的HBase集群提供服务。
hbase-region-server1.4.13为一个或多个HBase地区提供服务的服务。
hbase-client1.4.13HBase命令行客户端。
hbase-rest-server1.4.13为其提供RESTfulHTTP终端节点的服务HBase。
hbase-thrift-server1.4.13为其提供 Thrift 端点的HBase服务。
hcatalog-client2.3.7-amzn-1用于操作 hcatalog-server 的“hcat”命令行客户端。
hcatalog-server2.3.7-amzn-1提供服务HCatalog,为分布式应用程序提供表和存储管理层。
hcatalog-webhcat-server2.3.7-amzn-1HTTP端点为其提供REST接口HCatalog。
hive-client2.3.7-amzn-1Hive 命令行客户端。
hive-hbase2.3.7-amzn-1Hive-hbase 客户端。
hive-metastore-server2.3.7-amzn-1用于访问 Hive 元数据仓的服务,这是一个语义存储库,用于存储 Hadoop 操作SQL的元数据。
hive-server22.3.7-amzn-1用于将 Hive 查询作为 Web 请求接受的服务。
hudi0.6.0-amzn-0增量处理框架,以支持低延迟和高效率的数据管道。
hudi-spark0.6.0-amzn-0用于运行 Spark 以及 Hudi 的捆绑库。
hudi-presto0.6.0-amzn-0用于运行 Presto 以及 Hudl 的捆绑库。
hue-server4.7.1用于使用 Hadoop 生态系统应用程序分析数据的 Web 应用程序
jupyterhub1.1.0Jupyter notebook 的多用户服务器
livy-server0.7.0-incubatingREST用于与 Apache Spark 交互的接口
nginx1.12.1nginx [engine x] HTTP 是一个反向代理服务器
mahout-client0.13.0用于机器学习的库。
mxnet1.6.0用于深度学习的灵活的、可扩展且高效的库。
mariadb-server5.5.64+我的SQL数据库服务器。
nvidia-cuda9.2.88Nvidia 驱动程序和 Cuda 工具包
oozie-client5.2.0Oozie 命令行客户端。
oozie-server5.2.0用于接受 Oozie 工作流请求的服务。
opencv4.3.0开源计算机视觉库。
phoenix-library4.14.3--1.4 HBase服务器和客户端的 phoenix 库
phoenix-query-server4.14.3--1.4 HBase一款轻量级服务器,提供JDBC对 Avatica 的访问权限以及协议缓冲区和JSON格式访问权限 API
presto-coordinator0.238.3-amzn-0用于在 presto-worker 之中接受查询并管理查询的服务。
presto-worker0.238.3-amzn-0用于执行查询的各个部分的服务。
presto-client0.238.3-amzn-0Presto 命令行客户端,安装在 HA 集群的备用主节点(未启动 Presto 服务器)上。
pig-client0.17.0Pig 命令行客户端。
r3.4.3用于统计计算的 R 项目
ranger-kms-server1.2.0Apache Ranger 密钥管理系统
spark-client2.4.6-amzn-0.1Spark 命令行客户端。
spark-history-server2.4.6-amzn-0.1用于查看完整的 Spark 应用程序的生命周期的已记录事件的 Web UI。
spark-on-yarn2.4.6-amzn-0.1的内存中执行引擎。YARN
spark-yarn-slave2.4.6-amzn-0.1YARN从属服务器需要的 Apache Spark 库。
sqoop-client1.4.7Apache Sqoop 命令行客户端。
tensorflow2.1.0TensorFlow 用于高性能数值计算的开源软件库。
tez-on-yarn0.9.2tez YARN 应用程序和库。
webserver2.4.25+Apache HTTP 服务器。
zeppelin-server0.8.2支持交互式数据分析的基于 Web 的笔记本电脑。
zookeeper-server3.4.14用于维护配置信息、命名、提供分布式同步以及提供组服务的集中式服务。
zookeeper-client3.4.14ZooKeeper 命令行客户端。

5.31.1 配置分类

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

emr-5.31.1 分类
分类 描述

capacity-scheduler

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

container-log4j

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

core-site

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

emrfs-site

更改EMRFS设置。

flink-conf

更改 flink-conf.yaml 设置。

flink-log4j

更改 Flink log4j.properties 设置。

flink-log4j-yarn-session

更改 Flink log4 j-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

亚马逊EMR精心策划的 Apache 设置。HBase

hbase-env

更改环境HBase中的值。

hbase-log4j

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

hbase-metrics

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

hbase-policy

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

hbase-site

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

hdfs-encryption-zones

配置HDFS加密区域。

hdfs-site

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

hcatalog-env

更改环境HCatalog中的值。

hcatalog-server-jndi

更改HCatalog的 jndi.properties 中的值。

hcatalog-server-proto-hive-site

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

hcatalog-webhcat-env

更改 HCatalog W 环境ebHCat中的值。

hcatalog-webhcat-log4j2

更改 HCatalog W ebHCat 的 log4j2.properties 中的值。

hcatalog-webhcat-site

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

hive-beeline-log4j2

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

hive-parquet-logging

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

hive-env

更改 Hive 环境中的值。

hive-exec-log4j2

更改 Hive 的 hive-exec-log 4j2.properties 文件中的值。

hive-llap-daemon-log4j2

更改 Hive 的 llap-daemon-log 4j2.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

更改 Hudi 环境中的值。

jupyter-notebook-conf

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

jupyter-hub-conf

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

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 文件中的值。

ranger-kms-dbks-site

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

ranger-kms-site

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

ranger-kms-env

在游侠KMS环境中更改值。

ranger-kms-log4j

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

ranger-kms-db-ca

更改 S3 上我与 Ranger SQL SSL KMS 连接的 CA 文件值。

recordserver-env

更改EMR RecordServer 环境中的值。

recordserver-conf

更改服务器.proper EMR RecordServer ties 文件中的值。

recordserver-log4j

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

spark

亚马逊EMR精心策划的 Apache Spark 设置。

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 文件中的值。