统一观测丨使用 Prometheus 监控 E-MapReduce,我们该关注哪些指标?
作者:闻洪
开源大数据平台 E-MapReduce(简称“EMR”)是云原生开源大数据平台,向客户提供简单易集成的 Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi 等开源大数据计算和存储引擎。本文旨在分享阿里云 Prometheus 对 EMR 平台大数据服务的监控实践。
EMR 简介
开源大数据开发平台 E-MapReduce(简称“EMR”)作为大数据处理的系统解决方案被越来越多的企业所接受。而阿里云 EMR 构建于云服务器 ECS 上,基于开源的 Apache Hadoop 和 Apache Spark 可以方便地使用 Hadoop 和 Spark 生态系统中的其他周边系统分析和处理数据,还可以与阿里云 OSS 和 RDS 等云数据存储系统和数据库系统进行数据传输,让企业可以快速搭建 Hadoop、Spark、Flink、Kafka 和 HBase 等开源大数据服务。
我们可以看到,E-MapReduce 的核心是集群。E-MapReduce 集群是由一个或多个 ECS 实例组成的 Hadoop、Flink、Druid、ZooKeeper 集群。以 Hadoop 为例,每个 ECS 实例上通常都运行了一些 daemon 进程(例如,NameNode、DataNode、ResouceManager 和 NodeManager),这些 daemon 进程共同组成了 Hadoop 集群。在众多大数据组件背后,是海量需要被观测的指标,这就给运维工程师、SRE 工程师带来了巨大的挑战。那么,构建 E-MapReduce 之后,我们针对不同组件,应该关注哪些指标呢?
E-MapReduce 观测指标解读
Metric 指标采集
E-MapReduce 指标观测主要包括 HOST 监控、HDFS 、YARN、Hive、Kafka、Zookeeper、ClickHouse 和 Flink 等,那么接下来我们将进行逐一解读。
HOST 指标[1]
提供 ECS 节点 CPU、内存、磁盘、load、网络、socket 等监控指标。
HDFS 指标[2]
HDFS(Hadoop Distributed File System)是一种 Hadoop 分布式文件系统,适用于大规模数据的分布式读写,特别是读多写少的场景。HDFS 指标包括 HOME、NameNodes、DataNodes 和 JournanlNodes 指标。
HDFS-HOME
HDFS-NameNodes
HDFS-DataNodes
HDFS-JournanlNodes
YARN 指标[3]
YARN 是 Hadoop 系统的核心组件,主要功能包括负责 Hadoop 集群的资源管理,对作业进行调度运行以及监控。YARN 指标包括 HOME、Queue、ResourceManager、NodeManager、TimeLineServer 和 JobHistory。
YARN-HOME
YARN-Queues
YARN-ResourceManager
YARN-NodeManagers
YARN-TimeLineServer
YARN-JobHistory
Hive 指标[4]
Hive 是一个基于 Hadoop 的数据仓库框架,在大数据业务场景中,主要用来进行数据提取、转化和加载(ETL)以及元数据管理。Hive 由 HiveServer2(HiveQL 查询服务器)、Hive MetaStore(元数据管理模块)和 Hive Client 构成,其指标包括 HiveMetaStore 和 HiveServer2。
HiveMetaStore
HiveServer2
ZooKeeper 指标[5]
ZooKeeper 是一个分布式、高可用性的协调服务。ZooKeeper 提供分布式配置服务、同步服务和命名注册等功能。
0:作为 follower 节点。
1:作为 leader 节点。 || zk_synced_followers | 同步的 ZooKeeper 服务数量。 |
Kafka 指标[6]
消息队列 Kafka 版是阿里云提供的分布式、高吞吐、可扩展的消息队列服务。消息队列 Kafka 版广泛用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等大数据领域,已成为大数据生态中不可或缺的部分。
Kafka-HOME
Kafka-Broker
Status
Throughput
Performance
Storage
Request Rate
Request Time
MessageConversion
ZK session
JVM
Kafka-Topic
Status
Throughput
Request Rate
MessageConversion
Storage
Impala 指标[7]
Impala 为存储在 Apache Hadoop 中的数据提供了高性能和低延迟的 SQL 查询。
HUE 指标[8]
Kudu 指标[9]
ClickHouse 指标[10]
EMR ClickHouse 完全兼容开源版本的产品特性,并且在开源的基础上优化了读写性能,提升了 ClickHouse 与 EMR 其他组件快速集成的能力。
Flink 指标[11]
Flink 是一个流式数据流执行引擎,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能。
Overview
Checkpoint
Network
IO
Watermark
CPU
Memory
JVM
使用阿里云 Prometheus 监控 EMR
下面介绍如何使用阿里云 Prometheus 进行 EMR 的监控,包括接入配置、查看监控大盘和配置告警规则等三方面。
接入 EMR 配置
开启 exporter 端口
创建完 EMR 集群后会默认在 ECS 上安装 taihao-exporter,但 prometheus 端口未打开,需要手动开启。
先进入**EMR 控制台 [ 12] **找到 EMR 集群 id 和集群名称
点击“集群名称”找到 master 和 core 节点,并远程登录 ECS
查找 exporter 进程,ps -ef | grep taihao_exporter,修改 taihao_exporter.yaml 配置 prom_sink_enable=true 并重启服务(记得修改所有节点配置)
接入 EMR 组件
登录**阿里云 Prometheus [ 13] **控制台,点击“接入中心”选择“组件应用 E-MapReduce”点击“安装”按钮
选择“阿里云 ECS 环境”和 Prometheus 实例并填写接入配置信息:
EMR 集群 ID:到 EMR 控制台查找
EMR 集群名称:建议和 EMR 集群名称一致
exporter 名称:job 名称(建议默认值+集群名称)
exporter 端口:默认 9712
采集路径:Prometheus 采集 exporter 的 HTTP Path,使用默认值/metrics_preget
采集间隔(秒):采集时间间隔
ECS 标签 Key:部署 Exporter 的 ECS 标签和标签值,Prometheus 通过该标签进行服务发现,具体配置根据上图 ECS 标签设置,key 取值: acs:emr:nodeGroupType 或 acs:emr:hostGroupType
ECS 标签值:参考 ECS 标签值,默认是 CORE,MASTER (多个值用逗号分割)
常见问题
context deadline exceeded,将 EMR 实例的 ECS 加入 vpc 安全组,安装时有安全组提示
查看监控大盘
阿里云 Prometheus 提供 HOST、HDFS、Hive、YARN、Impala、ZooKeeper、Spark、Flink、ClickHouse 等共 24 个大盘,其中包括:
HOST 大盘:ECS 节点 CPU、内存、磁盘、load、network、socket 等
HDFS 大盘:HDFS-HOME、HDFS-NameNodes、HDFS-DataNodes、HDFS-JournanlNodes
Hive 大盘:
HiveServer2: HiveQL 查询服务器, 接收来自 JDBC 客户端提交的 SQL 请求
HiveMetaStore: 元数据管理模块,用于存储 Database 和 Table 等元信息
YARN 大盘:
HOME: 集群状态、内存、任务、节点、container 等
NodeManager: 负责节点的资源管理、监控和作业运行。
ResourceManager: 负责集群的资源管理与调度,为运行在 YARN 上的各种类型作业分配资源
TimeLineServer: 收集作业的指标,并展示作业执行情况
JobHistory:
ClickHouse 大盘
Flink 大盘
Impala 大盘
ZooKeeper 大盘
Spark 大盘进入集成 EMR 的 prometheus 实例,点击“E-MapReduce”标签,在弹出界面选择“大盘”tab 页,点击大盘缩略图,即可查看对应 Grafana 大盘。
HOST 大盘
image.png
HDFS 大盘
HDFS-HOME
HDFS-NameNodes
HDFS-DataNodes
HDFS-JournanlNodes
Hive 大盘
HiveMetaStore
HiveServer2
YARN 大盘
HOME
YARN-HOME-copy
YARN-HOME2
NodeManagers
JobHistory
ResourceManager
TimeLineServer
Kafka 大盘
KAFKA-HOME
KAFKA-Broker
image.png
KAFKA-Topic
image.png
Impala 大盘
Spark 大盘
ZooKeeper 大盘
ClickHouse 大盘
自建 Prometheus 与阿里云 Prometheus 监控的优劣对比
Prometheus 作为目前最主流的可观测开源项目之一,已经被众多企业所广泛应用。但在实际生产过程中,还是遇到各种各样问题,其中包括:
由于安全、组织管理等因素,用户业务通常部署在多个相互隔离的 VPC,需要在多个 VPC 内都重复、独立部署 Prometheus,导致部署和运维成本高。
每套完整的自建观测系统都需要安装并配置 Prometheus、Grafana、AlertManager 等组件,部署过程复杂、实施周期长,并且每次升级都需要对每个组件进行维护。
随着监控规模不断扩大,资源消耗呈非线性快速增加,系统可用性无法得到保障。
对于 EMR 的相关组件,自建 Prometheus 无法实现一站式、全局视角的监控建设。
开源分享的相关大盘不够专业,却少开箱即用的丰富指标,不能帮助用户更迅速的了解 EMR 的整体运行状况
针对以上问题,阿里云 Proemtheus 监控进行了以下几个方面的优化:
一、性能强化 &降低资源消耗,压降 IT 运维成本
为了进一步进行性能优化,阿里云 Prometheus 监控将 Agent 部署在用户侧,保留原生采集能力同时, 尽量使用最少资源;通过采集存储分离架构,提高整体性能;采集组件优化,提升单副本采集能力,降低资源消耗;通过多副本横向扩展均衡分解采集任务,实现动态扩缩,解决开源水平扩展问题。采集/数据处理/存储组件支持多副版本,保证核心数据链路高可用;基于集群规模可直接进行弹性扩容;支持数据重传,彻底解决丢弃逻辑弊病,确保数据完整性与准确性。
同时,为了应对大规模数据、长时间区间的查询场景,通过 DAG 执行优化、算子下推,提升大规模数据查询性能并支持长时间区间秒级查询;通过 Global DataSource 和 Global View 实现对多集群统一监控与跨集群聚合查询。
在提供企业级能力强化同时,全方位降低企业使用 Prometheus 的 IT 运维成本。通过包年包月、按量付费等多种计费方式让费用支出与规划更加清晰与灵活,相较于开源版本节省 37%以上。
二、与各类数据云服务深度集成
云产品在各自控制台都提供自身产品的可观测性,但这些云产品的指标及看板散落在各控制台,且无法进行精细化的指标数据应用。Prometheus 服务提供云产品监控功能,将这些数据进行统一展现、查询、告警,为运维团队提供更加便捷的日常运维监控界面。
三、Grafana 看板增强,让云服务监控更简单
想要更好、更快速的呈现相关指标图表,阿里云 Prometheus 监控预置 Grafana 组件,预置常见云服务、应用等看板模板,如应用实时监控服务 ARMS、云监控 CMS、日志服务 SLS、阿里云 Elasticsearch 等云服务,提供各种云服务的数据源配置及预置大盘,实现各种可观测数据的统一展示。如容器、消息队列 Kafka 等,进一步提供 GrafanaPro 大盘,帮助运维进行更加精细化的指标观测。在预置看板之外,可以通过 Grafana 官方自由增加新插件,添加新的可视化模板以及数据源,进一步满足个性化运维监控需求。
相关链接
[1] HOST 指标
https://help.aliyun.com/document_detail/426468.html?spm=a2c4g.11186623.0.0.741d6a7fW0Lwr5
[2] HDFS 指标
https://help.aliyun.com/document_detail/420598.html
[3] YARN 指标
https://help.aliyun.com/document_detail/424946.html
[4] Hive 指标
https://help.aliyun.com/document_detail/425274.html
[5] ZooKeeper 指标
https://help.aliyun.com/document_detail/425464.html
[6] Kafka 指标
https://help.aliyun.com/document_detail/425521.html
[7] Impala 指标
https://help.aliyun.com/document_detail/427926.html
[8] HUE 指标
https://help.aliyun.com/document_detail/428413.html
[9] Kudu 指标
https://help.aliyun.com/document_detail/427958.html
[10] ClickHouse 指标
https://help.aliyun.com/document_detail/425523.html
[11] Flink 指标
https://help.aliyun.com/document_detail/430469.html
[12] EMR 控制台
https://emr-next.console.aliyun.com/#/region/cn-hangzhou/resource/all/overview
[13] 阿里云 Prometheus
版权声明: 本文为 InfoQ 作者【阿里巴巴中间件】的原创文章。
原文链接:【http://xie.infoq.cn/article/059722678c829a6e69cab720d】。文章转载请联系作者。
评论