什么是 Amazon EMR Serverless? - Amazon EMR

什么是 Amazon EMR Serverless?

Amazon EMR Serverless 是 Amazon EMR 一个的部署选项,提供了无服务器运行时环境。这简化了使用 Apache Spark 和 Apache Hive 等最新开源框架的分析应用程序的操作。有了 EMR Serverless,您无需配置、优化、保护或操作集群,即可使用这些框架运行应用程序。

EMR Serverless 有助于避免为数据处理作业配置过多或过少的资源。EMR Serverless 可自动确定应用程序所需的资源,获取这些资源来处理作业,并在作业完成后释放资源。对于应用程序需要在几秒钟内得到响应的用例,比如交互式数据分析,可在创建应用程序时预先初始化应用程序所需的资源。

借助 EMR Serverless,您将继续获得 Amazon EMR 的优势,例如开源兼容性、并发性以及针对流行框架优化的运行时性能。

EMR Serverless 适合那些希望使用开源框架轻松操作应用程序的客户。还提供了快速启动作业、自动容量管理和简单的成本控制。

概念

在本节中,我们将介绍《EMR Serverless 用户指南》中出现的 EMR Serverless 术语和概念。

发行版

Amazon EMR 发行版是一组来自大数据生态系统的开源应用程序。每个发行版都包含不同的大数据应用程序、组件和功能,您可以从中选择来部署和配置 EMR Serverless,以便运行您的应用程序。创建应用程序时,必须指定发行版。选择要在应用程序中使用的 Amazon EMR 发行版和开源框架版本。要了解有关预发行版的更多信息,请参阅 Amazon EMR Serverless 发行版

应用程序

通过 EMR Serverless,您可以创建一个或多个使用开源分析框架的 EMR Serverless 应用程序。要创建应用程序,必须指定以下属性:

  • 您要使用的开源框架版本的 Amazon EMR 发行版。要确定发行版,请参阅 Amazon EMR Serverless 发行版

  • 您希望应用程序使用的特定运行时,例如 Apache Spark 或 Apache Hive。

创建应用程序后,您可以向其提交数据处理作业或交互请求。

每个 EMR Serverless 应用程序都在安全的 Amazon Virtual Private Cloud(VPC)上运行,与其他应用程序严格分开。此外,您还可以使用 AWS Identity and Access Management(IAM)策略来定义哪些用户和角色可以访问应用程序。还可以指定限制来控制和跟踪应用程序产生的使用成本。

当需要执行以下操作时,考虑创建多个应用程序:

  • 使用不同的开源框架

  • 针对不同的用例使用不同版本的开源框架

  • 从一个版本升级到另一个版本时执行 A/B 测试

  • 为测试和生产场景维护独立的逻辑环境

  • 为不同团队提供独立的逻辑环境,并进行独立的成本控制和使用跟踪

  • 分隔不同的业务线应用程序

EMR Serverless 是一项区域服务,可简化工作负载在一个区域内跨多个可用区的运行方式。要了解有关如何将应用程序与 EMR Serverless 结合使用的更多信息,请参阅 与 EMR Serverless 应用程序交互并进行配置

任务运行

作业运行是提交给 EMR Serverless 应用程序的请求,应用程序会以异步方式执行并跟踪其完成过程。作业示例包括提交给 Apache Hive 应用程序的 HiveQL 查询,或提交给 Apache Spark 应用程序的 PySpark 数据处理脚本。提交作业时,必须指定一个运行时角色(在 IAM 中编写),作业使用该角色访问 Amazon S3 对象等 AWS 资源。您可以向应用程序提交多个作业运行请求,每个作业运行都可以使用不同的运行时角色来访问 AWS 资源。EMR Serverless 应用程序在收到作业后立即开始执行作业,并同时运行多个作业请求。要了解有关 EMR Serverless 如何运行作业的更多信息,请参阅 运行任务

工作线程

EMR Serverless 应用程序在内部使用工作线程来执行工作负载。这些工作线程的默认大小取决于您的应用程序类型和 Amazon EMR 发行版。计划作业运行时,可以覆盖这些大小。

当您提交作业时,EMR Serverless 会计算应用程序在作业中所需的资源,并调度工作线程。EMR Serverless 可将工作负载分解为多个任务,下载映像,预置和设置工作线程,并在作业完成后停用。EMR Serverless 会根据作业每个阶段所需的工作负载和并行度自动扩展或缩减工作线程。这种自动扩展使您无需预估应用程序运行工作负载所需的工作线程数。

预初始化容量

EMR Serverless 提供了预初始化容量功能,可使工作线程在几秒钟内完成初始化并做好响应准备。此容量可以为应用程序创建一个热工作线程池。要为每个应用程序配置此功能,请设置应用程序的 initial-capacity 参数。配置预初始化容量后,作业可立即启动,以便实现迭代应用程序和时间敏感型作业。要了解有关预初始化工作线程的更多信息,请参阅 使用 EMR Serverless 时配置应用程序

EMR Studio

EMR Studio 是一个用户控制台,可用于管理 EMR Serverless 应用程序。如果在创建第一个 EMR Serverless 时,您的账户中没有 EMR Studio,我们会自动为您创建一个。您可以从 Amazon EMR 控制台访问 EMR Studio,也可以通过 IAM 或 IAM Identity Center 从身份提供者(IdP)开启联合访问。这样,用户就可以访问 Studio 并管理 EMR Serverless 应用程序,而无需直接访问 Amazon EMR 控制台。要了解有关 EMR Serverless 应用程序如何与 EMR Studio 配合使用的更多信息,请参阅 在 EMR Studio 控制台中创建 EMR Serverless 应用程序从 EMR Studio 控制台运行作业