跳至主要内容

AWS 解决方案库

有关 AWS 上的分析可观测性的指引

概览

本指引将展示如何提高在 Apache Spark 上运行的数据管道的可观测性。尽管此开源框架提供了用于收集运行时指标以了解低级别数据处理活动的工具,但这些指标比较原始。通过使用用于执行提取、转换、加载(ETL)操作的 AWS 服务以及 Apache Spark,您可以提高数据质量和粒度,以便更好地洞察优化机会。此外,提高数据管道的可观测性还有助于提高效率、减少运营开销、加速排除故障、避免性能瓶颈,以及从数据处理工作负载中获得更大的价值。

工作原理

这些技术细节包含一张架构图,用于说明如何有效使用本解决方案。该架构图展示了关键组件及其相互作用,并逐步概述了架构的结构和功能。

Well-Architected 支柱

上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。

本指引使用 OpenSearch Service 可观测性连接器来自动收集 Apache Spark 日志和指标,然后通过 OpenSearch Ingestion 管道对其进行转换,这些管道极具可配置性并能够根据您的需求进行改进。OpenSearch Service 提供了强大的搜索功能,内置的 OpenSearch 控制面板提高了可观测性,并提供了视觉效果,可缩短获得洞察的时间并帮助进行故障排除。

阅读卓越运营白皮书

AWS 身份和访问管理 (IAM) 允许您控制对管道和 OpenSearch 索引的访问权限。您可以使用 IAM 策略确保在当前 Apache Spark 应用程序的安全边界内收集指标和日志。您可以使用专用的管理角色、管道角色和摄取角色实施最低权限原则。此外,本指南使用亚马逊虚拟私有云(亚马逊 VPC)与 OpenSearch 进行通信以实现适当的网络流量隔离,并在数据存储到 Op en Search 之前使用 AWS KMS 对数据进行加密。

阅读安全白皮书

OpenSearch Service 可观测性连接器收集日志和指标,并将它们发送到 OpenSearch Ingestion 管道,这些管道会随着新日志和指标的生成而自动横向缩减和扩展。这样可以限制意外活动高峰对 OpenSearch Service 集群性能和稳定性产生的影响。此外,可观测性连接器的缓冲和采样功能可以帮助您进一步减小潜在的摄取后端压力。为了保持高可用性并提高可靠性,您可以允许在 OpenSearch Service 集群上执行多可用区(AZ)部署,此集群随后将跨可用区分配 Ingestion OpenSearch 计算单位(Ingestion OCU)。

阅读可靠性白皮书

使用 OpenSearch Service,您可以为 OpenSearch Ingestion 管道指定最小和最大 Ingestion OCU,它将根据管道的处理要求和客户端应用程序生成的负载自动进行纵向扩展和缩减。可观测性连接器与原生 Apache Spark 低级别插件接口集成在一起,以收集数据,同时限制 Apache Spark 作业的性能开销。此外,内置的自定义 Apache Spark 指标和日志收集器实施 API 消耗最佳实践,例如缓冲和指数回退,以便最大限度地减少对 Apache Spark 应用程序产生的影响。

阅读性能效率白皮书

OpenSearch Service 可观测性连接器会预先聚合某些指标,以减少后期处理和摄取的数量,从而优化所生成的指标和日志数量。这样就降低了过度消耗 Ingestion OCU 的风险。随后,OpenSearch Ingestion 管道利用动态扩展确保您不会由于处于不活动状态而产生费用;相反,您只需为管道的有效使用付费。您也可以根据需要启动和停止管道。OpenSearch 域也可以使用 UltraWarm 节点降低不经常访问的索引的成本。此外,本指引还减少了对于定制组件的需求,这样有助于进一步优化总拥有成本。

阅读成本优化白皮书

OpenSearch Ingestion 管道是原生无服务器管道,可以为数据摄取和转换提供弹性,从而最大限度地减少后端服务对环境产生的影响。本指南还支持预置集群和无服务器集合,您可以使用 OpenSearch 无服务器集合来进一步优化可持续性。此外,您还可以使用 OpenSearch 控制面板提供的洞察优化您的 Apache Spark 工作负载,并减少整体环境影响。

阅读可持续发展白皮书

实施资源

示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。
GitHub 上的开放示例代码

免责声明

示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。

找到今天要查找的内容了吗?

请提供您的意见,以便我们改进网页内容的质量。