【发布时间】:2023-01-26 04:50:08
【问题描述】:
假设我需要以 ETL 的方式在两个 S3 存储桶之间传输数据,并在传输过程中对数据进行简单的转换(只取部分列并按 ID 过滤)。 数据是镶木地板文件,其大小在 1GB 到 100GB 之间变化。
在速度和成本方面应该更有效 - 使用 Apache Spark Glue 作业,或使用 X 机器在 Hadoop 集群上使用 Spark?
【问题讨论】:
标签: apache-spark amazon-s3 aws-glue
假设我需要以 ETL 的方式在两个 S3 存储桶之间传输数据,并在传输过程中对数据进行简单的转换(只取部分列并按 ID 过滤)。 数据是镶木地板文件,其大小在 1GB 到 100GB 之间变化。
在速度和成本方面应该更有效 - 使用 Apache Spark Glue 作业,或使用 X 机器在 Hadoop 集群上使用 Spark?
【问题讨论】:
标签: apache-spark amazon-s3 aws-glue
对于任何无服务器(Glue)/非无服务器(EMR)服务等价物,答案基本相同。
第一个应该设置起来更快,但可配置性较差并且可能更昂贵。第二个将为您提供更多优化选项(性能和成本),但您不应忘记包括自己管理服务的成本。如果您需要预先估算价格,可以使用 AWS 定价计算器。
如果出现问题,我肯定会从 Glue 开始,然后转向更复杂的东西。另外,不要忘记现在也可以使用无服务器 EMR。
【讨论】:
在确定是否值得从 AWS Glue 切换到 AWS EMR 时,我读到了这个问题。
借助 EMR 上的可配置 EC2 SPOT 实例,我们大大减少了之前读取 1GB-4TB 的 csv 未压缩 csv 数据的 Glue 作业。我们能够使用 spot 实例来利用更大更快的 Graviton 处理器 EC2,这些 EC2 可以将更多数据加载到 RAM 中,减少溢出到磁盘。另一个好处是摆脱了动态框架,这在您不知道模式时非常有用,但是我们不需要的开销。此外,比 AWS Glue 提供的实例更大的 Spot 实例减少了我们的运行时间,但不会太多。更重要的是,我们将成本降低了 40-75%,是的,即使每个 EC2 实例的 EC2 + EBS + EMR 开销成本也是如此。我们从 Glue 每天 25-250 美元变成了 EMR 每天 2-60 美元。此过程的每月成本在 AWS Glue 中为 1600 美元,现在低于 500 美元。我们将 EMR 作为 job_flow_run 运行,并在空闲时终止运行,因此它本质上就像 Glue serverless 一样。
我们没有选择 EMR Serverless,因为没有 spot 实例,这可能是最大的好处。
唯一的问题是我们没有早点切换。我们现在正在将所有 AWS Glue 作业转移到 AWS EMR。
【讨论】: