Amazon EMR 是 AWS 提供的一项托管大数据平台服务。它的名字 EMR 代表 Elastic MapReduce。你可以把它想象成一个按需启用的“数据工厂”。传统方式下,你要自己买服务器、搭建 Hadoop 或 Spark 集群,就像自己盖厂房、买机器、拉电线,耗时数月。而 EMR 是提前建好的智能工厂。你只需在 AWS 控制台上点几下,选择你要的分析引擎(比如 Spark、Hive、HBase),几分钟后一个集群就开始运行了。处理完数据后,你可以关闭集群,停止计费。一个常见的数据规模是,EMR 可以处理 PB 级别的数据集。它被称为“Elastic”(弹性),是因为你可以在几分钟内从 10 台服务器扩展到 1000 台,处理完成后再缩回来。相比自建 Hadoop 集群,EMR 可将处理时间缩短 80% 以上,成本降低一半。
EMR 的工作流程分三步:启动、运行、销毁。
第一步是“启动集群”。你选定实例类型(例如 m5.xlarge,每台有 16 GB 内存)和数量。EMR 会自动在 AWS 的 EC2 服务器上部署大数据软件,包括 Hadoop、Spark、Hive 等。AWS 会在3到5分钟内拉起整个集群,自动安装所有依赖,你拿到的是一个开箱即用的环境。
第二步是“提交任务”。你把需要分析的数据放在 Amazon S3 上,这相当于一个无限容量的外部仓库,然后你向 EMR 集群提交代码,比如用 Spark SQL 写的一句查询:“统计过去一年销售额前 100 的商品”。
第三步是“处理与关闭”。集群读取 S3 中的数据,在数百台机器上并行计算。处理完成后,结果写回 S3。你可以立即终止集群,不再支付任何计算费用。值得注意的是,EMR 会自动处理节点故障:如果一个服务器坏掉,它会自动替换并重新计算受影响的任务。数据始终安全地保存在 S3 中,集群本身不持久保存数据。
Amazon EMR 适配绝大多数云端大数据处理场景,覆盖企业数据分析全流程。企业可借助EMR搭配Spark、Hive,对存储在S3的用户行为日志、业务流水、系统运行日志进行清洗、统计与建模。一句话总,只要你的数据量大到一台机器扛不住,EMR 就是最省心的答案。
场景一:日志分析。你的网站每天产生 10 TB 的访问日志,存在 S3 上。夜里你启动一个 EMR 集群,运行 Hive 脚本分析用户行为,比如“哪些页面跳出率最高”。清晨结果就出来了,然后关闭集群,成本不到 20 美元。
场景二:机器学习特征工程。你需要从 5 年的交易记录中提取 200 个特征来训练模型。用 EMR 上的 Spark 可以并行处理这些 PB 级数据,把特征输出到 S3,供 SageMaker 训练使用。数据科学家用 EMR 跑 Spark MLlib,从海量用户行为中提取特征,训练完模型后直接部署到 SageMaker,整个流水线不出AWS。