如何计算AWS Glue中处理1TB数据的G.1 Workers数量?

问题描述 投票:0回答:2

我有来自 parquet S3 的 1TB 数据要加载到 AWS Glue Spark 作业中。我正在尝试计算出满足此类要求所需的工人数量。

根据我,以下是

G.1x
配置的详细信息:

1 DPU added for MasterNode  
1 DPU reserved for Driver/ApplicationMaster  
Each worker is configured with 1 executor  
Each executor is configured with 10 GB of memory  
Each executor is configured with 8 cores   
EBS block of 64GB per DPU  

所以如果我采取

50 workers
。 1 个将停放在一边供驱动程序使用,1 个将停放在主节点旁边。所以,我现在还剩下48。因此,48 * 10 = 480 GB 内存(因为 1 个执行程序需要 10 GB 内存)。另外,64 * 48 = 3072 GB ~ 3 TB 磁盘。如果需要任何数据溢出,则将使用磁盘。

那么,这个配置正确吗?如果没有,我需要增加或减少工人吗?任何帮助深表感谢。另外,如果将来我涉及很多

collect
操作,那么我如何增加现在
driver
16GB
内存呢?

amazon-web-services apache-spark aws-glue aws-glue-spark
2个回答
1
投票

首先,没有直接的统计或数学公式可以得出所需的 DPU 数量,因为这取决于要解决的问题的性质,如下所示:

  • 工作需要尽快完成吗?最大并行度并更快完成?
  • 这是一项长期工作还是短期工作?
  • 该作业会解析大量小文件(以 KB 为单位)还是大块(以 100 MB 为单位)?
  • 成本考虑?鉴于成本是每 DPU 小时且作业运行持续时间很重要
  • 工作频率(每小时还是每天一次)?例如,这将帮助您确定工作是否需要 35 分钟且 DPU 数量较少(从而在不到一小时内完成,那么它可能是可以接受的,因为它有助于节省成本)

现在回答您的问题,假设您使用的是 Glue2.0,为了估计所需的 DPU(或工作人员)数量,您实际上应该启用 AWS Glue 中的作业指标,这可以为您提供了解作业执行时间所需的洞察力、活动执行程序、已完成的阶段以及扩展/缩减 AWS Glue 作业所需的最大执行程序。使用这些指标,您可以可视化并确定您的情况所需的最佳 DPU 数量。

您可以尝试运行虚拟作业或实际作业 1 次,使用指标并确定 DPU 的最佳数量(从成本和作业完成时间)的角度。

例如,尝试使用 50 名工作人员运行,分析您的配置不足因素,然后使用该因素来扩展您的当前容量。

您可以在此 AWS 链接外部链接 上阅读更多信息。

对于有关增加驱动程序内存的其他问题,我建议联系您的 AWS 支持人员或尝试使用具有 20GB 驱动程序内存的 G2.X。


© www.soinside.com 2019 - 2024. All rights reserved.