Apache Spark AWS Glue作业与Hadoop集群上Spark在存储桶之间传输数据的对比

2nbm6dog  于 2023-01-26  发布在  Apache
关注(0)|答案(2)|浏览(212)

假设我需要在两个S3 bucket之间以ETL的方式传输数据,在传输过程中对数据进行简单的转换(只取部分列,按ID过滤),数据是Parquet文件,大小在1GB到100 GB之间变化。
在速度和成本方面,哪一种应该更高效--使用Apache Spark Glue作业,还是在Hadoop集群上使用Spark(有X台机器)?

yshpjwxd

yshpjwxd1#

这个问题的答案对于任何无服务器(Glue)/非无服务器(EMR)服务等价物基本上是相同的。
第一个应该设置得更快,但配置性更差,而且可能更贵。第二个会给予你更多的优化选项(性能和成本),但你不应该忘记包括自己管理服务的成本。如果你需要一些价格估计,你可以使用AWS定价计算器。
我肯定会从胶水开始,如果出现问题,我会转向更复杂的东西。另外,别忘了现在也有无服务器EMR。

ulydmbyx

ulydmbyx2#

我在确定是否值得从AWS Glue切换到AWS EMR时阅读了这个问题。
通过EMR上可配置的EC2 SPOT示例,我们大幅减少了之前读取1GB-4 TB的csv未压缩csv数据的Glue作业。我们能够使用SPOT示例来利用更大、更快的Graviton处理器EC2,EC2可以将更多数据加载到RAM中,从而减少磁盘溢出。另一个好处是摆脱了动态帧,这在您不知道模式时非常有用。但这是我们不需要的开销。此外,比AWS Glue提供的更大的spot示例减少了我们的运行时间,但不是太多。更重要的是,我们削减了40- 75%的成本,是的,这与每个EC2示例的EC2 + EBS + EMR开销成本是相等的。我们从Glue的每天25 -250美元下降到EMR的每天2 - 60美元。此流程的每月成本为美元1600美元,现在是〈500美元。我们运行EMR作为job_flow_run和TERMINATE时,空闲,使它基本上像胶水无服务器。
我们没有使用EMR Serverless,因为没有spot示例,这可能是最大的好处。
唯一的问题是我们没有早些切换,我们现在正在将所有AWS Glue作业转移到AWS EMR。

相关问题