Amazon EMR 入门
如何使用 EMR
1.选择您偏好的 EMR 部署模式
Amazon EMR 支持您使用 Apache Spark、Hive、Flink、Trino 等开源工具处理海量数据。只需选择您偏好的 EMR 部署模式即可:
- EMR Serverless:无需管理集群即可运行应用程序,并根据工作负载自动扩展资源
- EC2 上的 EMR:用于控制集群配置,包括实例类型和自定义 AMI。
- EKS 上的 EMR:将分析与其他基于 Kubernetes 的应用程序整合到共享的 Amazon EKS 集群中。
2.开发数据处理应用程序
Amazon EMR 支持多种框架和编程语言,助您构建从标准 ETL 管道到大规模生成式人工智能数据准备等所有内容。
语言:使用 Python(PySpark)进行数据科学和机器学习,使用 SQL(通过 Hive 或 Trino)进行分析查询,或使用 Java 和 Scala 开发高性能的 Spark 应用程序。
框架:使用 Apache Spark 进行大规模数据处理,使用 Apache Flink 进行实时流处理,使用 Trino 实现跨多数据来源的快速 SQL 查询,以及使用 Apache Hudi 或 Iceberg 管理事务性数据湖,从而构建和运行应用程序。
3.准备和摄取数据
要开始处理,Amazon EMR 必须能够访问您的数据。虽然 Amazon S3 是 EMR 应用程序的标准存储层,但您仍可通过多种高速方法从本地环境或其他 AWS 服务中移动数据。
- 直接上传:如需立即处理,请通过 AWS 管理控制台、CLI 或 SDK 将对象直接上传至 Amazon S3。
- 高速连接:使用 AWS Direct Connect 绕过公共互联网,在您的数据中心与 AWS 之间建立私有、专用的网络连接。这可确保大规模数据传输时带宽稳定且延迟降低。
- 实时流式传输:利用 Amazon Data Firehose 或 Amazon Managed Streaming for Apache Kafka(MSK),在数据生成时将其直接传输至您的 EMR 应用程序,从而实现近乎实时的分析。
- 零 ETL 集成:利用零 ETL 功能分析来自 Amazon Aurora 或 Amazon Redshift 的数据,该功能使 EMR 能够访问运营数据,而无需手动构建数据管道。
- 混合访问:如果您的数据存储在本地 Hadoop HDFS 环境中,您可以使用 S3 连接器将数据直接读取到 EMR 中,或同步特定数据集以进行云端处理。
4.启动和监控
无论您是运行一次性任务还是持续生产管道,Amazon EMR 均可提供简化的部署体验。
- 通过 EMR Studio 启动:打开您的 EMR Studio 笔记本,并将其连接到无服务器应用程序或现有的 EC2 集群。只需点击一下,您即可在完全托管的环境中运行您的 Spark 或 Hive 代码。
- 无服务器:如果使用 EMR Serverless,请通过控制台、CLI 或 API 提交任务。EMR 会自动分配所需的精确计算资源和内存,在需求高峰时自动扩展,任务完成后则缩减至零。
- 通过 SageMaker 融通式合作开发工作室启动:在 SageMaker 融通式合作开发工作室中,您可以打开无服务器笔记本,并立即将其连接到 EMR Serverless 应用程序或 EC2 上的 EMR 集群。
5.监控并优化执行
EMR 通过内置工具提供对数据管道的可见性,帮助您自动识别瓶颈并优化成本。
通过 EMR 管理控制台、AWS CLI 或 SDK 监控任务进度和集群状态。EMR 与 Amazon CloudWatch 原生集成,可提供实时指标、日志和自动化警报功能。
直接从控制台访问实时且持久的 Spark UI 或 Tez UI(不仅可以实时调试正在运行的任务,甚至在无服务器作业完成后仍可进行调试),以查看执行计划和 DAG(有向无环图)。
您是否已做好准备来启动首个集群?
了解更多
培训和帮助
-
您在构建概念证明或进行 EMR 应用程序优化时是否需要协助? AWS 拥有专精 EMR 的全球支持团队。如果您有兴趣了解更多短期(2 至 6 周)付费支持业务的信息,请联系我们。
Scale Unlimited 公司提供定制的现场培训,适合于需要快速了解如何使用 EMR 和其他大数据技术的公司。若要了解更多信息,请单击此处。