应用程序资源 - Managed Service for Apache Flink
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。

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

应用程序资源

本节介绍您的应用程序使用的系统资源。了解 Managed Service for Apache Flink 如何配置和使用资源将有助于您设计、创建和维护 Managed Service for Apache Flink 应用程序的高性能和稳定。

Managed Service for Apache Flink 应用程序资源

Managed Service for Apache Flink 是Amazon一项为托管 Apache Flink 应用程序创建环境的服务。Managed Service for Apache Flink 服务使用名为 Kinesis 处理单元 (KPU) 的单元提供资源。

一个 KPU 代表以下系统资源:

  • 一个 CPU 核心

  • 4 GB 内存,其中 1 GB 为本机内存,3 GB 为堆内存

  • 50 GB 磁盘空间

KPU 在称为任务和任务的不同执行单元中运行应用程序。您可以把子任务看作等同于一个线程。

应用程序可用的 KPU 数量等于应用程序的Parallelism设置除以应用程序的ParallelismPerKPU设置。

有关应用程序并行度的更多信息,请参阅扩展

Apache Flink 环境使用称为任务槽的单元为您的应用程序分配资源。当 Managed Service for Apache Flink 为您的应用程序分配资源时,它会将一个或多个 Apache Flink 任务槽分配给单个 KPU。分配给单个 KPU 的插槽数等于应用程序的ParallelismPerKPU设置。有关任务计划的更多信息,请参阅 Apache Flink 文档中的任务和计划

您可以设置运算符可以使用的子任务的最大数量。此值称为运算符并行度。默认情况下,应用程序中每个运算符的并行度等于应用程序的并行度。这意味着,默认情况下,应用程序中的每个运算符都可以在需要时使用应用程序中所有可用的子任务。

您可以使用setParallelism方法设置应用程序中运算符的并行度。使用此方法,您可以控制每个运算符一次可以使用的子任务数量。

有关运算符链接的更多信息,请参阅 Apache Flink 文档中的任务链和资源组

通常,每个运算符使用单独的子任务来执行,但是如果几个运算符总是按顺序执行,则运行时可以将它们全部分配给同一个任务。此过程称为运算符链接

如果多个顺序运算符都对相同的数据进行操作,则可以将它们链接到一个任务中。以下是一些实现这一目标所需的标准:

  • 运算符进行一对一的简单转发。

  • 所有运算符都具有相同的运算符并行度。

当您的应用程序将运算符链接到单个子任务时,它可以节省系统资源,因为该服务不需要执行网络操作和为每个运算符分配子任务。要确定您的应用程序是否使用运算符链接,请查看 Managed Service for Apache Flink 控制台中的任务图。应用程序中的每个顶点代表一个或多个运算符。该图显示了已链接为单个顶点的运算符。