Amazon Glue 直播自动缩放 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon Glue 直播自动缩放

Amazon Glue 流式处理ETL作业持续消耗来自流媒体源的数据,清理和转换传输中的数据,并使其可供分析。通过监控作业运行的每个阶段, Amazon Glue AutoScaling 可以在工作线程空闲时将其关闭,或者如果可以进行额外的并行处理,则可以添加工作人员。

以下各节提供了有关 Amazon Glue 流式自动缩放的信息

在 Amazon Glue Studio中启用自动扩缩

在 Amazon Glue Studio 的 “任务详情” 选项卡上,选择类型为 Spark 或 Spar k Streamin g,将 Glue 版本选择为Glue 3.0Glue 4.0。随后将在 Worker type(工件类型)下方出现一个复选框。

  • 选择 Automatically scale the number of workers(自动扩展工件数量)选项。

  • 设置 Maximum number of workers(最大工件数量)以定义可提供给任务运行的最大工件数量。

在 Amazon Glue Studio 中启用和配置自动扩缩。

使用 Amazon CLI或启用 Auto Scaling SDK

要 Amazon CLI为作业运行启用 Auto Scaling From,请start-job-run使用以下配置运行:

{ "JobName": "<your job name>", "Arguments": { "--enable-auto-scaling": "true" }, "WorkerType": "G.2X", // G.1X and G.2X are allowed for Auto Scaling Jobs "NumberOfWorkers": 20, // represents Maximum number of workers ...other job run configurations... }

ETL作业运行完成后,您还可以调用get-job-run以检查作业在 DPU-seconds内运行的实际资源使用情况。注意:新字段DPUSeconds仅适用于启用 Auto Scaling 的 Amazon Glue 3.0 或更高版本的批处理作业。流式处理任务不支持此字段。

$ aws glue get-job-run --job-name your-job-name --run-id jr_xx --endpoint https://glue.us-east-1.amazonaws.com --region us-east-1 { "JobRun": { ... "GlueVersion": "3.0", "DPUSeconds": 386.0 } }

您也可以使用具有相同配置的 Auto Scaling 配置作业运行。Amazon Glue SDK

工作方式

跨微批次扩缩

以下示例描述了自动扩缩的工作原理。

  • 你有一 Amazon Glue 份以 50 开头的工作DPUs。

  • 自动扩缩已启用。

在此示例中, Amazon Glue 查看几个微型批次的 batchProcessingTime InMs “” 指标,并确定您的任务是否在您确定的窗口大小内完成。如果您的作业完成得较早,根据完成的速度, Amazon Glue 可能会缩减。可以监视这个用 numberAllExecutors “” 绘制的指标, Amazon CloudWatch 以了解自动缩放的工作原理。

只有在每个微批次完成后,执行程序的数量才会呈指数级扩缩。从 Amazon CloudWatch 监控日志中可以看出, Amazon Glue 查看所需的执行者数量(橙线),并自动缩放执行者(蓝线)以使其与之匹配。

屏幕截图显示了 Amazon CloudWatch 监控日志, Amazon Glue 如上面提供的示例,它查看了所需的执行者数量(橙线),并缩放了执行者(蓝线)以匹配该数字,而无需手动调整。

一旦 Amazon Glue 缩小执行者的数量并观察到数据量增加,从而增加微批处理时间, Amazon Glue 就会扩展到50DPUs,这是指定的上限。

微批次内扩缩

在上面的示例中,系统会监控几个已完成的微批次,以决定是扩大还是缩小规模。如果窗口较长,则需要在微批次内更快地响应,而不是等待几个微批次。对于此类情况,您可以使用一个额外配置 --auto-scaIe-within-microbatch 并将其设置为 true。您可以将其添加到中的 Amazon Glue 作业属性中, Amazon Glue Studio 如下所示。

屏幕截图显示了有关键和值的作业参数。“键”字段包含值 --auto-scaIe-within-microbatch,“值”字段包含值 true。