选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

AWS Glue 流式处理自动扩缩

聚焦模式
AWS Glue 流式处理自动扩缩 - AWS Glue

AWS Glue 流式传输 ETL 作业会持续消耗来自流式处理源的数据、清理和转换动态数据,并在使其可用于分析。通过监控作业运行的每个阶段,AWS Glue 自动扩缩可以在工作线程空闲时将其关闭,或者在有可能进行额外并行处理时添加工作线程。

以下部分介绍了有关 AWS Glue 流式处理自动扩缩的信息

在 AWS Glue Studio 中启用自动扩缩

在 AWS Glue Studio 中的 Job details(任务详细信息)选项卡上,将类型选择为 SparkSpark Streaming,并将 Glue version(Glue 版本)选择为 Glue 3.0Glue 4.0。随后将在 Worker type(工件类型)下方出现一个复选框。

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

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

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

使用 AWS CLI 或开发工具包启用自动扩缩

要通过 AWS CLI 为任务运行启用自动扩缩,使用以下配置运行 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 内任务运行的实际资源使用情况。请注意:为 AWS Glue 3.0 或更高版本上运行的批处理任务启用自动扩缩时,才会显示新字段 DPUSeconds。流式处理任务不支持此字段。

$ 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 } }

您还可以使用具有相同配置的 AWS Glue 开发工具包配置启用自动扩缩的任务运行。

工作方式

跨微批次扩缩

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

  • 您有一个 AWS Glue 作业,该作业起初为 50 个 DPU。

  • 自动扩缩已启用。

在本示例中,AWS Glue 将查看几个微批次的“batchProcessingTimeInMs”指标,并确定您的作业是否会在设定的窗口大小内完成。如果您的作业完成得较早,根据完成的速度,AWS Glue 可能会缩减。此指标使用“numberAllExecutors”进行绘制,并可在 Amazon CloudWatch 中进行监控,以了解自动扩缩是如何工作的。

只有在每个微批次完成后,执行程序的数量才会呈指数级扩缩。从 Amazon CloudWatch 监控日志中可以看到,AWS Glue 查看了所需的执行程序数量(橙色线),并自动根据该数量扩缩了执行程序(蓝色线)。

屏幕截图显示了一个 Amazon CloudWatch 监控日志(对于上述示例为 AWS Glue),并查看了所需的执行程序数量(橙色线),然后根据该数量扩缩了执行程序(蓝色线),而无需手动调整。

一旦 AWS Glue 缩减了执行程序的数量并观察到数据量增加,从而增加了微批次处理时间,AWS Glue 就会扩展到 50 个 DPU,即指定的上限。

微批次内扩缩

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

屏幕截图显示了有关键和值的作业参数。“键”字段包含值 --auto-scaIe-within-microbatch,“值”字段包含值 true。
隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。