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

i7uq4tfw  于 6个月前  发布在  Apache
关注(0)|答案(1)|浏览(59)

我有来自parquetS3的1 TB数据要加载到AWS Glue Spark作业中。我正在尝试计算此类要求所需的工作器数量。
下面是G.1x配置的详细信息:
因此,如果我采取50 workers. 1将被停放在一边的驱动程序和1的主节点.所以,我离开了48现在.所以,48 * 10 = 480 GB内存(因为1执行器需要10 GB内存).此外,64 * 48 = 3072 GB ~ 3 TB磁盘.如果有任何数据溢出需要然后磁盘将被使用.
那么,这个配置正确吗?如果不正确,我需要增加或减少工人吗?任何帮助都非常感谢。另外,如果将来我有很多collect操作,那么我如何增加driver内存,现在是16GB

cl25kdpy

cl25kdpy1#

首先,没有直接的统计或数学公式来计算所需的DPU数量,因为它取决于人们试图解决的问题的性质:

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

现在来回答你的问题,假设你使用GSP2.0,为了估计DPU的数量,(或工作人员)所需,您应该在AWS Glue中启用作业指标,这些指标可以给予您所需的洞察力,以了解作业执行时间、活动执行器、已完成阶段,以及扩展所需的最大执行者/使用这些指标,您可以可视化并确定您的情况所需的最佳DPU数量。
您可以尝试运行虚拟作业或实际作业1次,使用度量并确定DPU的最佳数量(从成本和作业完成时间的Angular )。
例如,尝试使用50个工作人员运行,分析您的资源调配不足因素,然后使用该因素扩展您的当前容量。
您可以阅读更多关于AWS linkexternal link的信息。
对于您的其他问题,增加驱动程序内存,我建议联系您的AWS支持或尝试使用G2.X,它有20 GB的驱动程序内存。

相关问题