写点什么

统一观测丨使用 Prometheus 监控 E-MapReduce,我们该关注哪些指标?

  • 2023-03-13
    浙江
  • 本文字数:4366 字

    阅读完需:约 14 分钟

作者:闻洪


开源大数据平台 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 端口未打开,需要手动开启。


  1. 先进入**EMR 控制台 [ 12] **找到 EMR 集群 id 和集群名称


image.png


  1. 点击“集群名称”找到 master 和 core 节点,并远程登录 ECS


image.png


image.png


  1. 查找 exporter 进程,ps -ef | grep taihao_exporter,修改 taihao_exporter.yaml 配置 prom_sink_enable=true 并重启服务(记得修改所有节点配置)


image.png


image.png


sed -i 's/prom_sink_enable:\s*false/prom_sink_enable: true/g' /usr/local/taihao_exporter/taihao_exporter.yamlservice taihao_exporter restart
复制代码

接入 EMR 组件

登录**阿里云 Prometheus [ 13] **控制台,点击“接入中心”选择“组件应用 E-MapReduce”点击“安装”按钮


image.png


选择“阿里云 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 (多个值用逗号分割)


image.png

常见问题

  • context deadline exceeded,将 EMR 实例的 ECS 加入 vpc 安全组,安装时有安全组提示


image.png

查看监控大盘

阿里云 Prometheus 提供 HOST、HDFS、Hive、YARN、Impala、ZooKeeper、Spark、Flink、ClickHouse 等共 24 个大盘,其中包括:


  1. HOST 大盘:ECS 节点 CPU、内存、磁盘、load、network、socket 等

  2. HDFS 大盘:HDFS-HOME、HDFS-NameNodes、HDFS-DataNodes、HDFS-JournanlNodes

  3. Hive 大盘:


  • HiveServer2: HiveQL 查询服务器, 接收来自 JDBC 客户端提交的 SQL 请求

  • HiveMetaStore: 元数据管理模块,用于存储 Database 和 Table 等元信息


  1. YARN 大盘:


  • HOME: 集群状态、内存、任务、节点、container 等

  • NodeManager: 负责节点的资源管理、监控和作业运行。

  • ResourceManager: 负责集群的资源管理与调度,为运行在 YARN 上的各种类型作业分配资源

  • TimeLineServer: 收集作业的指标,并展示作业执行情况

  • JobHistory:


  1. ClickHouse 大盘

  2. Flink 大盘

  3. Impala 大盘

  4. ZooKeeper 大盘

  5. Spark 大盘进入集成 EMR 的 prometheus 实例,点击“E-MapReduce”标签,在弹出界面选择“大盘”tab 页,点击大盘缩略图,即可查看对应 Grafana 大盘。


image.png

HOST 大盘

image.png

HDFS 大盘

HDFS-HOME
image.png
HDFS-NameNodes
image.png
HDFS-DataNodes
image.png
HDFS-JournanlNodes

Hive 大盘

HiveMetaStore
image.png
HiveServer2
image.png

YARN 大盘

HOME
  • YARN-HOME-copy


image.png


image.png


  • YARN-HOME2


image.png
NodeManagers
image.png
JobHistory
image.png
ResourceManager
image.png
TimeLineServer
image.png

Kafka 大盘

KAFKA-HOME
image.png
KAFKA-Broker
image.png

KAFKA-Topic

image.png

Impala 大盘

image.png

Spark 大盘

image.png

ZooKeeper 大盘

image.png

ClickHouse 大盘

image.png

自建 Prometheus 与阿里云 Prometheus 监控的优劣对比

Prometheus 作为目前最主流的可观测开源项目之一,已经被众多企业所广泛应用。但在实际生产过程中,还是遇到各种各样问题,其中包括:


  • 由于安全、组织管理等因素,用户业务通常部署在多个相互隔离的 VPC,需要在多个 VPC 内都重复、独立部署 Prometheus,导致部署和运维成本高。

  • 每套完整的自建观测系统都需要安装并配置 Prometheus、Grafana、AlertManager 等组件,部署过程复杂、实施周期长,并且每次升级都需要对每个组件进行维护。

  • 随着监控规模不断扩大,资源消耗呈非线性快速增加,系统可用性无法得到保障。

  • 对于 EMR 的相关组件,自建 Prometheus 无法实现一站式、全局视角的监控建设。

  • 开源分享的相关大盘不够专业,却少开箱即用的丰富指标,不能帮助用户更迅速的了解 EMR 的整体运行状况


针对以上问题,阿里云 Proemtheus 监控进行了以下几个方面的优化:

一、性能强化 &降低资源消耗,压降 IT 运维成本

为了进一步进行性能优化,阿里云 Prometheus 监控将 Agent 部署在用户侧,保留原生采集能力同时, 尽量使用最少资源;通过采集存储分离架构,提高整体性能;采集组件优化,提升单副本采集能力,降低资源消耗;通过多副本横向扩展均衡分解采集任务,实现动态扩缩,解决开源水平扩展问题。采集/数据处理/存储组件支持多副版本,保证核心数据链路高可用;基于集群规模可直接进行弹性扩容;支持数据重传,彻底解决丢弃逻辑弊病,确保数据完整性与准确性。


同时,为了应对大规模数据、长时间区间的查询场景,通过 DAG 执行优化、算子下推,提升大规模数据查询性能并支持长时间区间秒级查询;通过 Global DataSource 和 Global View 实现对多集群统一监控与跨集群聚合查询。


在提供企业级能力强化同时,全方位降低企业使用 Prometheus 的 IT 运维成本。通过包年包月、按量付费等多种计费方式让费用支出与规划更加清晰与灵活,相较于开源版本节省 37%以上。


image.png

二、与各类数据云服务深度集成

云产品在各自控制台都提供自身产品的可观测性,但这些云产品的指标及看板散落在各控制台,且无法进行精细化的指标数据应用。Prometheus 服务提供云产品监控功能,将这些数据进行统一展现、查询、告警,为运维团队提供更加便捷的日常运维监控界面。


image.png

三、Grafana 看板增强,让云服务监控更简单

想要更好、更快速的呈现相关指标图表,阿里云 Prometheus 监控预置 Grafana 组件,预置常见云服务、应用等看板模板,如应用实时监控服务 ARMS、云监控 CMS、日志服务 SLS、阿里云 Elasticsearch 等云服务,提供各种云服务的数据源配置及预置大盘,实现各种可观测数据的统一展示。如容器、消息队列 Kafka 等,进一步提供 GrafanaPro 大盘,帮助运维进行更加精细化的指标观测。在预置看板之外,可以通过 Grafana 官方自由增加新插件,添加新的可视化模板以及数据源,进一步满足个性化运维监控需求。


image.png

相关链接

[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


https://common-buy.aliyun.com/?commodityCode=arms#/open

发布于: 刚刚阅读数: 4
用户头像

云原生技术是云时代释放云价值的最短路径。 2020-06-11 加入

还未添加个人简介

评论

发布
暂无评论
统一观测丨使用 Prometheus 监控 E-MapReduce,我们该关注哪些指标?_阿里云_阿里巴巴中间件_InfoQ写作社区