Amazon EMR 非常适合运行 Apache Spark。您可以快速且轻松地从 AWS 管理控制台、AWS CLI 或 Amazon EMR API 中创建托管的 Spark 集群。此外,您还可以利用其他 Amazon EMR 功能,包括使用 Amazon EMR 文件系统 (EMRFS) 快速连接 Amazon S3、与 Amazon EC2 Spot 市场和 AWS Glue 数据目录集成,以及使用 EMR Managed Scaling 在集群中添加或移除实例。AWS Lake Formation 提供精细粒度的访问控制,同时与 AWS Step Functions 集成有助于编排数据管道。 EMR Studio(预览版)是一个集成式开发环境(IDE),使数据科学家和数据工程师能够轻松地开发、可视化和调试用 R、Python、Scala 和 PySpark 编写的数据工程和数据科学应用程序。EMR Studio 提供完全托管的 Jupyter 笔记本电脑,以及 Spark UI 和 YARN Timeline Service 等工具,可简化调试。 EMR Notebooks 可便于您使用 Spark 进行试验和构建应用。如果您有需要,则可以借助 Spark,您还可以使用 Apache Zeppelin 创建交互式和协作式 notebooks 以进行数据探索。
功能和益处
快速性能
EMR 具有适用于 Apache Spark 的 Amazon EMR 运行时,这是一种针对 Apache Spark 进行性能优化的运行时环境,默认情况下在 Amazon EMR 群集上处于活动状态。适用于 Apache Spark 的 Amazon EMR 运行时的速度可比没有 EMR 运行时的集群快 3 倍以上,并且与标准 Apache Spark 具有 100% 的 API 兼容性。此项提升性能可提高工作负载的运行速度,并节省计算成本,无需更改应用程序。
通过使用有向无环图 (DAG) 执行引擎,Spark 可以创建针对数据转换的高效查询计划。Spark 还会将输入内容、输出内容以及内存中的中间数据存储为弹性数据帧,从而实现快速处理(不会产生 I/O 成本)并提高迭代式或交互式工作负载的性能。
快速联合开发应用程序
Apache Spark 原生支持 Java、Scala、SQL 和 Python,可为您提供多种应用程序构建语言。此外,您还可以使用 Spark SQL 模块提交 SQL 或 HiveQL 查询。除了运行应用程序以外,您还可以在集群上的 Spark shell 中,或者通过 EMR Studio 或 Jupyter Notebook 以交互方式直接结合使用 Spark API 和 Python 或 Scala。EMR 6.0 中 Apache Hadoop 3.0 的支持提供了 Docker 容器支持,以简化管理依赖项。您也可以利用独立于集群的 EMR Notebooks(基于 Jupyter)或使用 Zeppelin 创建交互式协作 notebooks,用于数据探索和虚拟化。您可以调整和调试 EMR 控制台中的工作负载,该工作台具有集群外的持久Spark History Server。
创建多样化工作流程
Apache Spark 包括多个库,可帮助构建针对以下方面的应用程序:机器学习 (MLlib)、流处理 (Spark 流传输) 和图形处理 (GraphX)。这些库紧密集成在 Spark 生态系统中,可即时用于处理各种使用案例。此外,您还可以将 Apache MXNet 等深度学习框架用于 Spark 应用程序。与 AWS Step Functions 集成可让您向应用程序中添加无服务器工作流自动化和编排。
与 Amazon EMR 功能集集成
借助 EMR Step API 提交 Apache Spark 作业,结合使用 Spark 和 EMRFS 以直接访问 S3 中的数据,使用 EC2 Spot 容量节约成本,使用 EMR Managed Scaling 动态添加和移除容量,并根据您的工作负载启动长期运行的集群或瞬态集群。您还可以使用 EMR 安全配置轻松配置 Spark 加密和 Kerberos 身份验证。此外,您可以使用 AWS Glue 数据目录存储 Spark SQL 表元数据,或与 Spark 机器学习管道配合使用 Amazon SageMaker。EMR 在 Hadoop YARN 上安装和管理 Spark,您还可以在集群中添加其他大数据应用程序。EMR with Apache Hudi 可简化记录删除,让您更高效低管理更改数据捕捉 (CDC),并有助于遵守 GDPR 和 CCPA 等隐私法规。单击此处了解有关 EMR 功能的更多详细信息。
使用案例
流处理
借助 EMR 上的 Spark Streaming,使用和处理来自 Amazon Kinesis、Apache Kafka 或其他数据流的实时数据。采用容错方式执行流分析,并将相应结果写入到 S3 或基于集群的 HDFS 中。
机器学习
EMR 上的 Apache Spark 包括适用于各种可扩展的机器学习算法的 MLlib,或者您也可以使用自己的库。通过在作业过程中在内存中存储数据集,Spark 可针对机器学习工作负载中常见的迭代查询提供出色的性能。您可以将笔记本电脑实例与 Amazon EMR 上运行的 Apache Spark 集群连接,从而增强 Amazon SageMaker 的功能,通过 Amazon SageMaker Spark 轻松训练和托管模型。
交互式 SQL
使用 Spark SQL 进行低延迟的 SQL 或 HiveQL 交互式查询。EMR 上的 Spark 可以利用 EMRFS,因此您可以临时访问 S3 中的数据集。此外,您可以通过 ODBC 和 JDBC 连接来使用 EMR Studio、EMR Notebooks、Zeppelin Notebooks 或 BI 工具。
客户成功案例
Yelp
Yelp 的广告定位团队设计了一些预测模型来确定用户与广告互动的几率。通过使用 Amazon EMR 上的 Apache Spark 处理大量数据来改进机器学习模型,Yelp 提高了收入和广告点击率。
华盛顿邮报
《华盛顿邮报》使用 Amazon EMR 上的 Apache Spark 构建模型,为其网站的推荐引擎提供强大支持,从而提高读者的参与度和满意度。他们利用 Amazon EMR 与 Amazon S3 的完美连接,以近乎实时的方式更新模型。
Intent Media
Intent Media 运营着一个用于在旅游商务网站上进行广告宣传的平台。数据团队使用 Amazon EMR 上的 Apache Spark 和 MLlib 每日摄取数 TB 的电子商务数据,并使用这些信息来支持其决策服务,从而优化客户收入。单击此处了解更多信息。
Krux
作为用于管理客户信息的数据管理平台的一部分,Krux 使用 Apache Spark 运行许多机器学习和常规处理工作负载。Krux 结合使用临时 Amazon EMR 集群和 Amazon EC2 Spot 容量来节约成本,并将 Amazon S3 与 EMRFS 用作 Apache Spark 的数据层。
GumGum
图像内和屏幕内广告平台 GumGum 使用 Amazon EMR 上的 Spark 预测库存、处理点击流日志以及临时分析 Amazon S3 中的非结构化数据。Spark 的增强性能为 GumGum 节省了处理这些工作流程的时间和资金。
Hearst Corporation
Hearst Corporation 是一家大型多元化媒体信息公司,客户可查看 200 多个网站上的内容。利用 Amazon EMR 上的 Apache Spark 流传输,Hearst 的编辑人员可以实时了解哪些文章反响良好以及哪些主题是热门话题。
CrowdStrike
CrowdStrike 提供端点防护以防止出现违例。它们结合使用 Amazon EMR 和 Spark 来处理数百 TB 的事件数据,并将其汇总到主机上更高级别的行为描述中。通过这些数据,CrowdStrike 可以将事件数据汇集在一起并确定是否存在恶意活动。
了解有关 Amazon EMR 定价的更多信息