Amazon EMR のアイコン

Amazon EMR 专业2009年〜

以托管方式运行 Apache Spark、Hive、Presto 等大数据框架的服务

它能做什么

Amazon EMR (Elastic MapReduce) 是在托管集群上运行 Apache Spark、Hive、Presto、HBase 等开源大数据框架的服务。自动预置 EC2 实例集群来执行 PB 级数据处理。集群的设置、配置和调优由 AWS 管理。

使用场景

适用于大规模日志分析、ETL (数据抽取、转换、加载) 处理、机器学习数据预处理、数据湖上的交互式查询、基因组分析等大数据工作负载。

日常类比

可以将其比作大型工厂的生产线。为处理大量原材料 (数据),自动排列所需数量的机器 (节点) 并启动运行。处理完成后收起机器,只需支付使用部分的费用。

什么是 EMR

Amazon EMR 是用于大数据处理的托管集群服务。无需自行安装和配置 Apache Spark 或 Hive 等框架,几分钟内即可启动集群并执行作业。以 S3 作为数据湖,采用计算与存储分离的架构是常见模式。

集群构成

EMR 集群由主节点、核心节点和任务节点 3 种类型组成。主节点负责集群管理和作业协调。核心节点负责数据存储和处理。任务节点仅执行处理,可利用竞价实例降低成本。Auto Scaling 可根据负载自动调整节点数量。

EMR on EKS 与 EMR Serverless

EMR 除了 EC2 上的集群外,还提供在 EKS 上运行 Spark 作业的 EMR on EKS,以及完全无需集群管理的 EMR Serverless。EMR on EKS 适合将大数据处理集成到现有 Kubernetes 环境中。EMR Serverless 只需提交作业即可自动预置资源,使用最为简单。 如需整理 EMR on EKS 和 EMR Serverless 的概念和方法,可参阅 专业书籍 (Amazon)

入门指南

在 EMR 控制台选择「创建集群」,指定应用程序 (Spark、Hive 等)、实例类型和节点数量。对 S3 上的数据提交 Spark 作业并将结果输出到 S3 是基本流程。设置处理完成后自动终止集群可避免不必要的成本。

注意事项

  • Leaving clusters running incurs ongoing instance charges, so auto-termination after job completion is recommended
  • Using Spot Instances for task nodes can significantly reduce costs, but job design must account for interruptions
  • For simple use cases, EMR Serverless may be more cost-effective since it eliminates cluster management
共有するXB!