什么是 Amazon EMR 无服务器? - Amazon EMR

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

什么是 Amazon EMR 无服务器?

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

EMRServerless 可帮助您避免为数据处理任务配置过度或资源不足。EMRServerless 会自动确定应用程序所需的资源,获取这些资源来处理您的作业,并在任务完成时释放资源。对于应用程序需要在几秒钟内得到响应的用例,例如交互式数据分析,您可以在创建应用程序时预先初始化应用程序所需的资源。

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

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

概念

在本节中,我们将介绍EMR无服务器用户指南中出现的EMR无服务器术语和概念。

发布版本

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

应用程序

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

  • 您要使用的开源框架版本的 Amazon EMR 发布版本。要确定您的发行版本,请参阅Amazon EMR 无服务器发布版本

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

创建应用程序后,您可以向应用程序提交数据处理任务或交互式请求。

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

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

  • 使用不同的开源框架

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

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

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

  • 通过独立的成本控制和使用情况跟踪,为不同的团队提供独立的逻辑环境

  • 将不同的 line-of-business 应用程序分开

EMRServerless 是一项区域性服务,可简化工作负载在一个区域的多个可用区域中运行的方式。要详细了解如何在 EMR Serverless 中使用应用程序,请参阅与应用程序交互

任务运行

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

工作线程

EMR无服务器应用程序在内部使用工作人员来执行您的工作负载。这些工作程序的默认大小取决于您的应用程序类型和 Amazon EMR 发布版本。在安排作业运行时,可以覆盖这些大小。

当您提交作业时,EMRServerless 会计算应用程序为该作业所需的资源并安排工作人员。EMRServerless 会将您的工作负载分解为任务,下载映像、配置和设置工作人员,并在任务完成后停用它们。EMRServerless 会根据每个工作阶段的工作负载和并行度自动向上或向下扩展工作人员。这种自动扩展功能使您无需估算应用程序运行您的工作负载所需的工作人员数量。

预先初始化的容量

EMRServerless 提供了预初始化的容量功能,可让工作人员在几秒钟内完成初始化并做好响应准备。这种容量可以有效地为应用程序创建大量工作人员。要为每个应用程序配置此功能,请设置应用程序的initial-capacity参数。配置预初始化的容量后,作业可以立即启动,这样您就可以实现迭代应用程序和时间敏感型作业。要了解有关预初始化工作程序的更多信息,请参阅。配置应用程序

EMR工作室

EMRStudio 是可用于管理EMR无服务器应用程序的用户控制台。如果您在创建第一个EMR无服务器应用程序时您的帐户中不存在 EMR Studio,我们会自动为您创建一个 Studio。您可以从亚马逊EMR控制台访问 EMR Studio,也可以通过IAM或IAM身份中心开启身份提供商 (IdP) 的联合访问权限。当您执行此操作时,用户无需直接访问亚马逊EMR控制台即可访问 Studio 并管理EMR无服务器应用程序。要详细了解EMR无服务器应用程序如何与 EMR Studio 配合使用,请参阅从 EMR Studio 控制台与您的应用程序进行交互和。从 EMR Studio 控制台运行作业