Amazon EMR 发行版 5.31.1
5.31.1 应用程序版本
此发行版本支持以下应用程序:Flink
下表列出了此版本的 Amazon EMR 中提供的应用程序版本以及前三个 Amazon EMR 发行版中的应用程序版本(若适用)。
有关每个发行版的 Amazon EMR 的应用程序版本的全面历史记录,请参见以下主题:
emr-5.31.1 | emr-5.31.0 | emr-5.30.2 | emr-5.30.1 | |
---|---|---|---|---|
Amazon SDK for Java | 1.11.852 | 1.11.852 | 1.11.759 | 1.11.759 |
Python | 2.7、3.7 | 2.7、3.7 | 2.7、3.7 | 2.7、3.7 |
Scala | 2.11.12 | 2.11.12 | 2.11.12 | 2.11.12 |
AmazonCloudWatchAgent | - | - | - | - |
Delta | - | - | - | - |
Flink | 1.11.0 | 1.11.0 | 1.10.0 | 1.10.0 |
Ganglia | 3.7.2 | 3.7.2 | 3.7.2 | 3.7.2 |
HBase | 1.4.13 | 1.4.13 | 1.4.13 | 1.4.13 |
HCatalog | 2.3.7 | 2.3.7 | 2.3.6 | 2.3.6 |
Hadoop | 2.10.0 | 2.10.0 | 2.8.5 | 2.8.5 |
Hive | 2.3.7 | 2.3.7 | 2.3.6 | 2.3.6 |
Hudi | 0.6.0-amzn-0 | 0.6.0-amzn-0 | 0.5.2-incubating | 0.5.2-incubating |
Hue | 4.7.1 | 4.7.1 | 4.6.0 | 4.6.0 |
Iceberg | - | - | - | - |
JupyterEnterpriseGateway | - | - | - | - |
JupyterHub | 1.1.0 | 1.1.0 | 1.1.0 | 1.1.0 |
Livy | 0.7.0 | 0.7.0 | 0.7.0 | 0.7.0 |
MXNet | 1.6.0 | 1.6.0 | 1.5.1 | 1.5.1 |
Mahout | 0.13.0 | 0.13.0 | 0.13.0 | 0.13.0 |
Oozie | 5.2.0 | 5.2.0 | 5.2.0 | 5.2.0 |
Phoenix | 4.14.3 | 4.14.3 | 4.14.3 | 4.14.3 |
Pig | 0.17.0 | 0.17.0 | 0.17.0 | 0.17.0 |
Presto | 0.238.3 | 0.238.3 | 0.232 | 0.232 |
Spark | 2.4.6 | 2.4.6 | 2.4.5 | 2.4.5 |
Sqoop | 1.4.7 | 1.4.7 | 1.4.7 | 1.4.7 |
TensorFlow | 2.1.0 | 2.1.0 | 1.14.0 | 1.14.0 |
Tez | 0.9.2 | 0.9.2 | 0.9.2 | 0.9.2 |
Trino (PrestoSQL) | - | - | - | - |
Zeppelin | 0.8.2 | 0.8.2 | 0.8.2 | 0.8.2 |
ZooKeeper | 3.4.14 | 3.4.14 | 3.4.14 | 3.4.14 |
5.31.1 发布说明
此版本旨在修复 Amazon EMR Scaling 无法成功纵向扩展/缩减集群或导致应用程序故障时出现的问题。
更改、增强和解决的问题
修复了当 Amazon EMR 集群上的进程守护程序正在进行运行状况检查活动(例如收集 YARN 节点状态和 HDFS 节点状态)时,针对高利用率的大型集群的扩展请求失败的问题。之所以发生这种情况,是因为集群上的进程守护程序无法将节点的运行状况数据传递给内部 Amazon EMR 组件。
改进了 EMR 集群上的进程守护程序,以便在重用 IP 地址时正确跟踪节点状态,从而提高扩缩操作期间的可靠性。
SPARK-29683
。修复了集群缩减期间出现任务失败的问题,因为 Spark 假定所有可用节点都被拒绝列出。 YARN-9011
。修复了集群尝试纵向扩展或缩减时,由于 YARN 停用中的争用条件导致任务失败的问题。 通过确保 Amazon EMR 集群上的进程守护程序和 YARN/HDFS 之间的节点状态始终一致,解决了集群扩展期间步骤或任务失败的问题。
修复了已启用 Kerberos 身份验证的 Amazon EMR 集群的诸如缩减和步骤提交等集群操作失败的问题。这是因为 Amazon EMR 集群上的进程守护程序没有续订 Kerberos 票证,而该票证是与主节点上运行的 HDFS/YARN 进行安全通信所必需的。
较新的 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 Linux 存储库的 HTTPS。如果您使用 Amazon S3 VPCE 策略限制对特定存储桶的访问,则必须添加新的 Amazon Linux 存储桶 ARN
arn:aws:s3:::amazonlinux-2-repos-$region/*
到策略(将$region
替换为终端节点所在的区域)。有关更多信息,请参阅 Amazon 讨论论坛的主题。公告:Amazon Linux 2 目前支持在连接到软件包存储库时使用 HTTPS 的功能。
已知问题
当您将 Spark 与 Hive 分区位置格式化结合使用以读取 Amazon S3 中的数据,并在 Amazon EMR 版本 5.30.0 至 5.36.0 以及 6.2.0 至 6.9.0 上运行 Spark 时,可能会遇到导致集群无法正确读取数据的问题。如果您的分区具有以下所有特征,会发生这种情况:
-
从同一个表扫描两个或多个分区。
-
至少有一个分区目录路径是至少一个其他分区目录路径的前缀,例如,
s3://bucket/table/p=a
是s3://bucket/table/p=a b
的前缀。 -
另一个分区目录中前缀后面的第一个字符的 UTF-8 值小于
/
字符 (U+002F)。例如,在s3://bucket/table/p=a b
中,a 和 b 之间出现的空格字符 (U+0020) 就属于此类。请注意,还有其他 14 个非控制字符:!"#$%&‘()*+,-
。有关更多信息,请参阅 UTF-8 encoding table and Unicode characters(UTF-8 编码表和 Unicode 字符)。
解决方法是在
spark-defaults
分类中将spark.sql.sources.fastS3PartitionDiscovery.enabled
配置设置为false
。-
5.31.1 组件版本
下面列出了 Amazon EMR 随此发行版一起安装的组件。一些组件作为大数据应用程序包的一部分安装。其它组件是 Amazon EMR 独有的,并且已为系统流程和功能安装这些组件。它们通常以 emr
或 aws
开头。最新的 Amazon EMR 发行版中的大数据应用程序包通常是在社区中找到的最新版本。我们会尽快在 Amazon EMR 中提供社区发行版。
Amazon EMR 中的某些组件与社区版本不同。这些组件具有以下形式的
的发行版标注。CommunityVersion
-amzn-EmrVersion
从 0 开始。例如,假设已对名为 EmrVersion
myapp-component
的版本 2.2 的开源社区组件进行三次修改,以包含在不同的 Amazon EMR 发行版中,则其发行版将为 2.2-amzn-2
。
组件 | 版本 | 描述 |
---|---|---|
aws-sagemaker-spark-sdk | 1.4.0 | Amazon SageMaker Spark 开发工具包 |
emr-ddb | 4.15.0 | 适用于 Hadoop 生态系统应用程序的 Amazon DynamoDB 连接器。 |
emr-goodies | 2.13.0 | 适用于 Hadoop 生态系统的方便易用的库。 |
emr-kinesis | 3.5.0 | 适用于 Hadoop 生态系统应用程序的 Amazon Kinesis 连接器。 |
emr-s3-dist-cp | 2.15.0 | 针对 Amazon S3 优化的分布式复制应用程序。 |
emr-s3-select | 1.6.0 | EMR S3 Select 连接器 |
emrfs | 2.43.0 | 适用于 Hadoop 生态系统应用程序的 Amazon S3 连接器。 |
flink-client | 1.11.0 | Apache Flink 命令行客户端脚本和应用程序。 |
flink-jobmanager-config | 1.11.0 | 为 Apache Flink JobManager 管理 EMR 节点上的资源。 |
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 | 2.10.0-amzn-0.1 | Hadoop 命令行客户端,如“hdfs”、“hadoop”或“yarn”。 |
hadoop-hdfs-datanode | 2.10.0-amzn-0.1 | 用于存储数据块的 HDFS 节点级服务。 |
hadoop-hdfs-library | 2.10.0-amzn-0.1 | HDFS 命令行客户端和库 |
hadoop-hdfs-namenode | 2.10.0-amzn-0.1 | 用于跟踪文件名和数据块位置的 HDFS 服务。 |
hadoop-hdfs-journalnode | 2.10.0-amzn-0.1 | 用于管理 HA 集群上的 Hadoop 文件系统日志的 HDFS 服务。 |
hadoop-httpfs-server | 2.10.0-amzn-0.1 | 用于 HDFS 操作的 HTTP 终端节点。 |
hadoop-kms-server | 2.10.0-amzn-0.1 | 基于 Hadoop 的 KeyProvider API 的加密密钥管理服务器。 |
hadoop-mapred | 2.10.0-amzn-0.1 | 用于运行 MapReduce 应用程序的 MapReduce 执行引擎库。 |
hadoop-yarn-nodemanager | 2.10.0-amzn-0.1 | 用于管理单个节点上的容器的 YARN 服务。 |
hadoop-yarn-resourcemanager | 2.10.0-amzn-0.1 | 用于分配和管理集群资源与分布式应用程序的 YARN 服务。 |
hadoop-yarn-timeline-server | 2.10.0-amzn-0.1 | 用于检索 YARN 应用程序的当前信息和历史信息的服务。 |
hbase-hmaster | 1.4.13 | 适用于负责协调区域和执行管理命令的 HBase 集群的服务。 |
hbase-region-server | 1.4.13 | 用于服务于一个或多个 HBase 区域的服务。 |
hbase-client | 1.4.13 | HBase 命令行客户端。 |
hbase-rest-server | 1.4.13 | 用于向 HBase 提供 RESTful HTTP 终端节点的服务。 |
hbase-thrift-server | 1.4.13 | 用于向 HBase 提供 Thrift 终端节点的服务。 |
hcatalog-client | 2.3.7-amzn-1 | 用于操作 hcatalog-server 的“hcat”命令行客户端。 |
hcatalog-server | 2.3.7-amzn-1 | 用于为分布式应用程序提供 HCatalog、表和存储管理层的服务。 |
hcatalog-webhcat-server | 2.3.7-amzn-1 | 用于向 HCatalog 提供 REST 接口的 HTTP 终端节点。 |
hive-client | 2.3.7-amzn-1 | Hive 命令行客户端。 |
hive-hbase | 2.3.7-amzn-1 | Hive-hbase 客户端。 |
hive-metastore-server | 2.3.7-amzn-1 | 用于访问 Hive 元存储 (一个用于存储 Hadoop 操作中的 SQL 的元数据的语义存储库) 的服务。 |
hive-server2 | 2.3.7-amzn-1 | 用于将 Hive 查询作为 Web 请求接受的服务。 |
hudi | 0.6.0-amzn-0 | 增量处理框架,以支持低延迟和高效率的数据管道。 |
hudi-spark | 0.6.0-amzn-0 | 用于运行 Spark 以及 Hudi 的捆绑库。 |
hudi-presto | 0.6.0-amzn-0 | 用于运行 Presto 以及 Hudl 的捆绑库。 |
hue-server | 4.7.1 | 用于使用 Hadoop 生态系统应用程序分析数据的 Web 应用程序 |
jupyterhub | 1.1.0 | Jupyter notebook 的多用户服务器 |
livy-server | 0.7.0-incubating | 用于与 Apache Spark 交互的 REST 接口 |
nginx | 1.12.1 | nginx [引擎 x] 是 HTTP 和反向代理服务器 |
mahout-client | 0.13.0 | 用于机器学习的库。 |
mxnet | 1.6.0 | 用于深度学习的灵活的、可扩展且高效的库。 |
mariadb-server | 5.5.64+ | MySQL 数据库服务器。 |
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 | 4.14.3-HBase-1.4 | 服务器和客户端的 phoenix 库 |
phoenix-query-server | 4.14.3-HBase-1.4 | 向 Avatica API 提供 JDBC 访问权限以及协议缓冲区和 JSON 格式访问权限的轻量级服务器 |
presto-coordinator | 0.238.3-amzn-0 | 用于在 presto-worker 之中接受查询并管理查询的服务。 |
presto-worker | 0.238.3-amzn-0 | 用于执行查询的各个部分的服务。 |
presto-client | 0.238.3-amzn-0 | Presto 命令行客户端,安装在 HA 集群的备用主节点(未启动 Presto 服务器)上。 |
pig-client | 0.17.0 | Pig 命令行客户端。 |
r | 3.4.3 | 用于统计计算的 R 项目 |
ranger-kms-server | 1.2.0 | Apache Ranger 密钥管理系统 |
spark-client | 2.4.6-amzn-0.1 | Spark 命令行客户端。 |
spark-history-server | 2.4.6-amzn-0.1 | 用于查看完整的 Spark 应用程序的生命周期的已记录事件的 Web UI。 |
spark-on-yarn | 2.4.6-amzn-0.1 | 适用于 YARN 的内存中执行引擎。 |
spark-yarn-slave | 2.4.6-amzn-0.1 | 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.25+ | Apache HTTP 服务器。 |
zeppelin-server | 0.8.2 | 支持交互式数据分析的基于 Web 的笔记本电脑。 |
zookeeper-server | 3.4.14 | 用于维护配置信息、命名、提供分布式同步以及提供组服务的集中式服务。 |
zookeeper-client | 3.4.14 | ZooKeeper 命令行客户端。 |
5.31.1 配置分类
配置分类允许您自定义应用程序。这些通常与应用程序的配置 XML 文件(例如 hive-site.xml
)相对应。有关更多信息,请参阅 配置应用程序。
分类 | 描述 |
---|---|
capacity-scheduler | 更改 Hadoop 的 capacity-scheduler.xml 文件中的值。 |
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-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-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 | 更改 Hudi 环境中的值。 |
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 文件中的值。 |
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 文件中的值。 |
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 文件中的值。 |