为了提高 Spark 应用程序的效率,监控其性能和行为至关重要。 在这篇文章中,我们演示了如何发布详细的 Spark 指标 亚马逊电子病历 至 亚马逊CloudWatch。 这将使您能够在优化资源利用率的同时识别瓶颈。
CloudWatch 为 AWS 资源和应用程序提供强大、可扩展且经济高效的监控解决方案,具有强大的自定义选项以及与其他 AWS 服务的无缝集成。 默认情况下,Amazon EMR 发送 基本指标 CloudWatch 来跟踪集群的活动和运行状况。 Spark 的可配置指标系统允许在各种接收器中收集指标,包括 HTTP、JMX 和 CSV 文件,但需要额外的配置才能使 Spark 能够将指标发布到 CloudWatch。
解决方案概述
该解决方案包括 Spark 配置,用于将指标发送到自定义接收器。 自定义接收器仅收集 Metricfilter.json 文件中定义的指标。 它利用 CloudWatch 代理将指标发布到自定义 Cloudwatch 命名空间。 包含的引导操作脚本负责在 CloudWatch 代理和指标库上安装和配置 亚马逊弹性计算云 (Amazon EC2) EMR 实例。 CloudWatch 仪表板可以提供对应用程序性能的即时洞察。
下图说明了解决方案架构和工作流程。
工作流程包括以下步骤:
- 用户启动 Spark EMR 作业,在 EMR 集群上创建步骤。 使用 Apache Spark,工作负载分布在 EMR 集群的不同节点上。
- 在集群的每个节点(EC2 实例)中,Spark 库捕获指标数据并将其推送到 CloudWatch 代理,该代理在将指标数据推送到 CloudWatch 之前聚合指标数据 每30秒.
- 用户可以在 CloudWatch 控制台上查看访问自定义命名空间的指标。
我们提供 AWS CloudFormation 这篇文章中的模板作为一般指南。 该模板演示了如何在 Amazon EMR 上配置 CloudWatch 代理以将 Spark 指标推送到 CloudWatch。 您可以根据需要查看和自定义它以包含您的 Amazon EMR 安全配置。 作为最佳实践,我们建议在模板中包含您的 Amazon EMR 安全配置,以 加密传输中的数据.
您还应该注意,此堆栈部署的某些资源在继续使用时会产生成本。 此外, 电子病历指标 不会产生 CloudWatch 费用。 但是,自定义指标会根据 CloudWatch 指标定价产生费用。 有关更多信息,请参阅 亚马逊 CloudWatch 定价.
在接下来的部分中,我们将完成以下步骤:
- 创建指标库、安装脚本和过滤器定义并将其上传到 亚马逊简单存储服务 (Amazon S3)存储桶。
- 使用 CloudFormation 模板创建以下资源:
- 在 CloudWatch 控制台上监控 Spark 指标。
先决条件
这篇文章假设你有以下几点:
- An AWS账户.
- 用于存储引导脚本、库和指标过滤器定义的 S3 存储桶。
- 创建于的 VPC 亚马逊虚拟私有云 (Amazon VPC),您的 EMR 集群将在其中启动。
- Amazon EMR 对 AWS 服务和资源的权限的默认 IAM 服务角色。 您可以使用 aws emr create-default-roles 命令创建这些角色 AWS命令行界面 (AWS CLI)。
- 可选的 EC2 密钥对(如果您计划通过 SSH 而不是连接到集群) 会话管理器, 的能力 AWS系统经理.
定义所需的指标
为了避免向 CloudWatch 发送不必要的数据,我们的解决方案实施了指标过滤器。 回顾 火花文档 熟悉命名空间及其相关指标。 确定哪些指标与您的特定应用程序和性能目标相关。 根据工作负载、数据处理要求和优化目标,不同的应用程序可能需要不同的指标来监控。 您想要监控的指标名称及其关联的命名空间应在 Metricfilter.json 文件中定义。
我们创建了一个示例 Metricfilter.json 定义,其中包括捕获与数据 I/O、垃圾收集、内存和 CPU 压力以及 Spark 作业、阶段和任务指标相关的指标。
请注意,某些指标并非在所有 Spark 发行版本中都可用(例如,appStatus 是在 Spark 3.0 中引入的)。
创建所需文件并将其上传到 S3 存储桶
欲了解更多信息,请参阅 上传对象 和 在您的服务器上安装和运行 CloudWatch 代理.
要创建和上传引导脚本,请完成以下步骤:
- 在 Amazon S3 控制台上,选择您的 S3 存储桶。
- 点击 对象 标签,选择 上传.
- 添加文件,然后选择 指标过滤器.json, 安装程序.sh及 示例作业.sh 文件。
- 另外,上传
emr-custom-cw-sink-0.0.1.jar
与您将使用的 Amazon EMR 发行版本对应的指标库文件: - 上传,并记下文件的 S3 URI。
使用 CloudFormation 模板配置资源
启动堆栈 在您的账户中启动 CloudFormation 堆栈并部署模板:
此模板创建 IAM 角色、IAM 实例配置文件、EMR 集群和 CloudWatch 控制面板。 集群启动基本 Spark 示例应用程序. 如果您从此模板创建堆栈,您将需要为使用的 AWS 资源付费。
CloudFormation 向导将要求您修改或提供以下参数:
- 实例类型 ——由数百家创建、维护和提供物联网(IoT)全球开放标准的公司所组成的 实例类型 对于所有实例组。 默认值为 m5.2xlarge。
- 实例计数核心 – 核心实例组中的实例数。 默认值为 4。
- EMRR发布标签 ——由数百家创建、维护和提供物联网(IoT)全球开放标准的公司所组成的 Amazon EMR 发布标签 你想用。 默认为 emr-6.9.0。
- BootstrapScript路径 – 您之前复制的 installer.sh 安装引导脚本的 S3 路径。
- 指标过滤路径 – 您之前复制的 Metricfilter.json 定义的 S3 路径。
- 指标库路径 – 您之前复制的 CloudWatch emr-custom-cw-sink-3.jar 库的 S0.0.1 路径。
- CloudWatch命名空间 – 要使用的自定义 CloudWatch 命名空间的名称。
- SparkDemo应用程序路径 – 您之前复制的 examplejob.sh 脚本的 S3 路径。
- 子网路 – 集群启动的 EC2 子网。 您必须提供此参数。
- EC2密钥对名称 – 用于连接集群节点的可选 EC2 密钥对,作为会话管理器的替代方案。
查看指标
CloudFormation 堆栈成功部署后,示例作业会自动启动,大约需要 15 分钟才能完成。 在 CloudWatch 控制台上,选择 仪表板 在导航窗格中。 然后按前缀 SparkMonitoring 过滤列表。
示例仪表板包含有关集群的信息以及 Spark 作业、阶段和任务的概述。 指标也可以在自定义命名空间下使用,以 EMRCustomSparkCloudWatchSink
.
还包括内存、CPU、I/O 和其他任务分配指标。
最后,每个执行器都有详细的 Java 垃圾收集指标。
清理
为了避免您的帐户将来产生费用,请删除您在本演练中创建的资源。 只要 EMR 集群处于活动状态,该集群就会产生费用,因此请在完成后停止它。 完成以下步骤:
- 在 CloudFormation 控制台的导航窗格中,选择 堆栈.
- 选择您启动的堆栈 (
EMR-CloudWatch-Demo
),然后选择 删除. - 清空 S3 存储桶 你创造了。
- 删除 S3 存储桶 你创造了。
结论
现在,您已完成本演练中的步骤,CloudWatch 代理正在您的集群主机上运行,并配置为将 Spark 指标推送到 CloudWatch。 借助此功能,您可以有效监控 Amazon EMR 上运行的 Spark 作业的运行状况和性能,实时检测关键问题并快速识别根本原因。
您可以通过 CloudFormation 模板(如本示例模板)打包和部署此解决方案,该模板创建 IAM 实例配置文件角色、CloudWatch 仪表板和 EMR 集群。 该库的源代码可在 GitHub上 用于定制。
要更进一步,请考虑在 CloudWatch 警报中使用这些指标。 您可以将它们与其他警报一起收集到 复合报警 或配置报警动作,如发送 亚马逊简单通知服务 (Amazon SNS) 触发事件驱动流程的通知,例如 AWS Lambda 功能。
关于作者
吕布线索 是 AWS 的首席工程师。 他与我们最大的企业客户合作,解决他们一些最复杂的技术问题。 他通过创新推动广泛的解决方案,以影响和改善客户的生活。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- PlatoData.Network 垂直生成人工智能。 赋予自己力量。 访问这里。
- 柏拉图爱流。 Web3 智能。 知识放大。 访问这里。
- 柏拉图ESG。 汽车/电动汽车, 碳, 清洁科技, 能源, 环境, 太阳能, 废物管理。 访问这里。
- 柏拉图健康。 生物技术和临床试验情报。 访问这里。
- 图表Prime。 使用 ChartPrime 提升您的交易游戏。 访问这里。
- 块偏移量。 现代化环境抵消所有权。 访问这里。
- Sumber: https://aws.amazon.com/blogs/big-data/monitor-apache-spark-applications-on-amazon-emr-with-amazon-cloudwatch/
- :是
- :不是
- :在哪里
- 1
- 100
- 107
- 15%
- 20
- 30
- 9
- a
- 对,能力--
- 访问
- 账号管理
- 认识的
- 横过
- 操作
- 行动
- 要积极。
- 活动
- 额外
- 另外
- 经纪人
- 报警
- 所有类型
- 允许
- 沿
- 还
- 替代
- Amazon
- Amazon EC2
- 亚马逊电子病历
- 亚马逊网络服务
- an
- 和
- 阿帕奇
- Apache Spark
- 应用领域
- 应用领域
- 约
- 建筑的
- 架构
- 保健
- AS
- 相关
- 假设
- At
- 作者
- 自动
- 可使用
- 避免
- 察觉
- AWS
- 基于
- 基本包
- BE
- before
- 最佳
- 引导
- 广阔
- 但是
- by
- CAN
- 能力
- 捕获
- 捕获
- 原因
- 一定
- 收费
- 簇
- 码
- 收集
- 采集
- 收集
- 完成
- 完成
- 复杂
- 计算
- 配置
- 配置
- 分享链接
- 连接
- 考虑
- 安慰
- 核心
- 对应
- 经济有效
- 成本
- 可以
- 中央处理器
- 创建信息图
- 创建
- 创建
- 创造
- 危急
- 习俗
- 合作伙伴
- 定制
- 定制
- XNUMX月XNUMX日
- data
- 数据处理
- 默认
- 定义
- 定义
- 演示
- 演示
- 根据
- 部署
- 部署
- 部署
- 详细
- 确定
- 不同
- 分布
- 分配
- 完成
- 别
- 驱动器
- 每
- 此前
- 只
- 效率
- enable
- 工程师
- 企业
- 企业客户
- 必要
- 醚(ETH)
- 例子
- 专栏
- 文件
- 档
- 过滤
- 以下
- 针对
- 止
- 功能
- 进一步
- 未来
- 其他咨询
- 得到
- 给
- Go
- 理想中
- 团队
- 组的
- 指南
- 有
- he
- 健康管理
- 为了
- 创新中心
- How To
- 但是
- HTML
- HTTP
- HTTPS
- IAM
- 鉴定
- 确定
- if
- 说明
- 说明
- 影响力故事
- 器物
- 改善
- in
- 包括
- 包括
- 包括
- 包含
- 信息
- 創新
- 洞察
- 安装
- 安装
- 例
- 即食类
- 积分
- 成
- 介绍
- 问题
- IT
- 它的
- 爪哇岛
- 工作
- 工作机会
- JSON
- 键
- 最大
- 发射
- 推出
- 启动
- 自学资料库
- 生活
- 喜欢
- Line
- 清单
- 长
- 经理
- 可能..
- 内存
- 公
- 指标
- 分钟
- 修改
- 显示器
- 监控
- 更多
- 最先进的
- 必须
- 姓名
- 名称
- 旅游导航
- 打印车票
- 下页
- 节点
- 节点
- 注意
- 通知
- 通知
- 数
- 目标
- of
- on
- 仅由
- 优化
- 追求项目的积极优化
- 附加选项
- or
- 其他名称
- 我们的
- 简介
- 包
- 对
- 面包
- 参数
- 参数
- 径
- 为
- 性能
- 权限
- 计划
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 肖像
- 帖子
- 强大
- 在练习上
- 压力
- 价格
- 校长
- 私立
- 问题
- 过程
- 处理
- 本人简介
- 提供
- 提供
- 发布
- 推
- 推
- 推动
- 很快
- 宁
- 真实
- 实时的
- 建议
- 有关
- 释放
- 相应
- 留
- 要求
- 必须
- 岗位要求
- 资源
- 资源利用率
- 资源
- 提供品牌战略规划
- 检讨
- 健壮
- 角色
- 角色
- 根
- 运行
- 可扩展性
- 无缝的
- 部分
- 部分
- 保安
- 看到
- 提交
- 发送
- 发送
- 服务
- 特色服务
- 会议
- 应该
- 简易
- So
- 方案,
- 解决方案
- 解决
- 一些
- 来源
- 源代码
- 火花
- 具体的
- 堆
- 阶段
- 实习
- 开始
- 开始
- 启动
- 步
- 步骤
- Stop 停止
- 存储
- 子网
- 顺利
- 这样
- 概要
- 系统
- 产品
- 采取
- 需要
- 任务
- 任务
- 文案
- 模板
- 比
- 这
- 其
- 他们
- 然后
- 博曼
- 他们
- Free Introduction
- 通过
- 次
- 至
- 跟踪时
- 触发
- 下
- 使用
- 用过的
- 运用
- 利用
- 各种
- 版本
- 查看
- 在线会议
- 演练
- 想
- 是
- we
- 卷筒纸
- Web服务
- ,尤其是
- 这
- 而
- 将
- 工作流程
- 合作
- X
- 雅姆
- 您
- 您一站式解决方案
- 和风网