本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
应用程序资源
本节介绍您的应用程序使用的系统资源。了解 Kinesis Data Analytics 如何配置和使用资源将帮助您设计、创建和维护高性能和稳定的 Kinesis Data Analytics 应用程序。
Kinesis Data Analytics 应用程序
Kinesis Data Analytics 是一项为托管 Apache Flink 应用程序创建环境的Amazon服务。Kinesis Data Analytics 服务使用名为 Kinesis 处理单元 (KPU) 的单位提供资源。
一个 KPU 代表以下系统资源:
一个 CPU 核心
4 GB 内存,其中 1 GB 为本机内存,3 GB 为堆内存
50 GB 的磁盘空间
KPU 以不同的执行单元(称为任务和子任务)运行应用程序。您可以将子任务视为等同于线程。
应用程序可用的 KPU 数量等于应用程序的Parallelism设置除以应用程序的ParallelismPerKPU设置。
有关应用程序并行的更多信息,请参阅扩缩 生产准备就绪。
Apache Flink 应用程序资源
Apache Flink 环境使用称为任务槽的单元为您的应用程序分配资源。当 Kinesis Data Analytics 为您的应用程序分配资源时,它会将一个或多个 Apache Flink 任务槽分配给一个 KPU。分配给单个 KPU 的插槽数等于应用程序的ParallelismPerKPU设置。有关任务槽的更多信息,请参阅 Apache Flink 文档
操作员并行性
您可以设置操作员可以使用的最大子任务数。此值称为运算符并行度。默认情况下,应用程序中每个运算符的并行度等于应用程序的并行度。这意味着,默认情况下,如果需要,应用程序中的每个操作员都可以使用应用程序中的所有可用子任务。
您可以使用该setParallelism方法设置应用程序中运算符的并行度。使用此方法,您可以控制每个操作员一次可以使用的子任务数量。
有关运算符链接的更多信息,请参阅 Apache Flink 文档中的任务链
操作员创建
通常,每个运算符使用单独的子任务来执行,但是如果多个运算符总是按顺序执行,则运行时可以将它们全部分配给同一个任务。此过程称为操作员链接。
如果多个顺序运算符都对相同的数据进行操作,则可以将它们链接到单个任务中。以下是一些示例方案:
运营商进行一对一的简单转发。
所有运算符都具有相同的运算符并行度。
当您的应用程序将操作员链接到单个子任务中时,它可以节省系统资源,因为该服务不需要执行网络操作并为每个操作员分配子任务。要确定您的应用程序是否使用运算符链接,请查看 Kinesis Data Analytics 控制台中的任务图。应用程序中的每个顶点代表一个或多个运算符。该图显示了已链接为单个顶点的运算符。