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

33c3758f6ffad250e23f59388019af01.gif

开源大数据平台E-MapReduce(简称“EMR”)是云原生开源大数据平台,向客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎。本文旨在分享阿里云Prometheus对EMR平台大数据服务的监控实践。

EMR 简介

Aliware

开源大数据开发平台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 观测指标解读

Aliware

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

指标

描述

hive_memory_heap_max

JVM最大可用堆内存,单位:Byte。

hive_memory_heap_used

JVM已使用堆内存,单位:Byte。

hive_memory_non_heap_used

JVM已使用堆外内存量,单位:Byte。

hive_active_calls_api_alter_table

当前活跃的alter table请求数。

hive_active_calls_api_create_table

当前活跃的create table请求数。

hive_active_calls_api_drop_table

当前活跃的drop table请求数。

hive_api_alter_table

alter table请求平均时间,单位:ms。

hive_api_alter_table_with_environment_context

alter table with env context请求平均时间,单位:ms。

hive_api_create_table

create table请求平均时间,单位:ms。

hive_api_create_table_with_environment_context

create table with env context请求平均时间,单位:ms。

api_drop_table

drop table请求平均时间,单位:ms。

hive_api_drop_table_with_environment_context

drop table with env context请求平均时间,单位:ms。

hive_api_get_all_databases

get all databases请求平均时间,单位:ms。

hive_api_get_all_functions

get all functions请求平均时间,单位:ms。

hive_api_get_database

get database请求平均时间,单位:ms。

hive_api_get_databases

get databases请求平均时间,单位:ms。

hive_api_get_multi_table

get multi table请求平均时间,单位:ms。

hive_api_get_tables_by_type

get table请求平均时间,单位:ms。

hive_api_get_table_objects_by_name_req

get table objects by name请求平均时间,单位:ms。

hive_api_get_table_req

get table req请求平均时间,单位:ms。

hive_api_get_table_statistics_req

get table statistics请求平均时间,单位:ms。

hive_api_get_tables

get tables请求平均时间,单位:ms。

hive_api_get_tables_by_type

get tables by type请求平均时间,单位:ms。

  • HiveServer2

指标

描述

hive_metrics_hs2_active_sessions

当前活跃的session个数。

hive_metrics_memory_total_init

JVM初始化总内存,单位:Byte。

hive_metrics_memory_total_committed

JVM已预留总内存,单位:Byte。

hive_metrics_memory_total_max

JVM最大可用总内存,单位:Byte。

hive_metrics_memory_heap_committed

JVM已预留堆内存,单位:Byte。

hive_metrics_memory_heap_inithive_metrics_memory_heap_committed

JVM初始化堆内存,单位:Byte。

hive_metrics_memory_non_heap_committed

JVM已预留堆外内存,单位:Byte。

hive_metrics_memory_non_heap_init

JVM初始化堆外内存,单位:Byte。

hive_metrics_memory_non_heap_max

JVM最大可用堆外内存,单位:Byte。

hive_metrics_gc_PS_MarkSweep_count

JVM PS MarkSweep GC次数。

hive_metrics_gc_PS_MarkSweep_time

JVM PS MarkSweep GC时间,单位:ms。

hive_metrics_gc_PS_Scavenge_time

JVM PS Scavenge GC时间,单位:ms。

hive_metrics_threads_daemon_count

JVM daemon线程数。

hive_metrics_threads_count

JVM线程数。

hive_metrics_threads_blocked_count

JVM blocked线程数。

hive_metrics_threads_deadlock_count

JVM deadlock线程数。

hive_metrics_threads_new_count

JVM new状态线程数。

hive_metrics_threads_runnable_count

JVM runnable线程数。

hive_metrics_threads_terminated_count

JVM terminated线程数。

hive_metrics_threads_waiting_count

JVM waiting线程数。

hive_metrics_threads_timed_waiting_count

JVM timed_waiting线程数。

hive_metrics_memory_heap_max

JVM最大可用堆内存,单位:Byte。

hive_metrics_memory_heap_used

JVM已使用堆内存,单位:Byte。

hive_metrics_memory_non_heap_used

JVM已使用堆外内存量,单位:Byte。

hive_metrics_hs2_open_sessions

当前打开的session数。

hive_metrics_hive_mapred_tasks

提交的Hive on MR作业总数。

hive_metrics_hive_tez_tasks

提交的Hive on Tez作业总数。

hive_metrics_cumulative_connection_count

累计连接数。

hive_metrics_active_calls_api_runTasks

当前runtask请求数。

hive_metrics_hs2_completed_sql_operation_FINISHED

已结束的SQL总数。

hive_metrics_hs2_sql_operation_active_user

当前活跃用户数。

hive_metrics_open_connections

当前打开的连接数。

hive_metrics_api_PostHook_com_aliyun_emr_meta_hive_hook_LineageLoggerHook

执行LineageLoggerHook的平均时间,单位:ms。

hive_metrics_api_hs2_sql_operation_PENDING

SQL任务处于PEEDING状态的平均时间,单位:ms。

hive_metrics_api_hs2_sql_operation_RUNNING

运SQL任务处于RUNNING状态的平均时间,单位:ms。

hive_metrics_hs2_submitted_queries

提交查询的平均时间,单位:ms。

hive_metrics_hs2_executing_queries

执行查询的平均时间,单位:ms。

hive_metrics_hs2_succeeded_queries

服务启动后成功的查询数。

hive_metrics_hs2_failed_queries

服务启动后失败的查询数。

ZooKeeper指标[5]

ZooKeeper是一个分布式、高可用性的协调服务。ZooKeeper提供分布式配置服务、同步服务和命名注册等功能。

指标

描述

zk_packets_received

ZooKeeper接收的包的数量。

zk_packets_sent

ZooKeeper发送的包的数量。

zk_avg_latency

ZooKeeper平均请求延迟,单位:ms。

zk_min_latency

ZooKeeper最小请求延迟,单位:ms。

zk_max_latency

ZooKeeper最大请求延迟,单位:ms。

zk_watch_count

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Prometheus 可以监控各种系统指标、Docker 容器、Kubernetes 等,其中最常用的是对 Linux 系统的监控Prometheus 可以监控的一些常见的性能指标包括: - CPU 使用率 - 内存使用率 - 磁盘 I/O - 网络 I/O - 文件系统使用率 - 进程数量 - 系统负载 - TCP 连接数 - HTTP 请求响应时间 您可以通过在 Prometheus 的 web 界面中查看这些性能指标的变化趋势以及当前的状态,以判断这些性能指标是否达标。 具体操作如下: 1. 打开 Prometheus 的 web 界面 在浏览器中输入 http://your-server-ip:9090,访问 Prometheus 的 web 界面。 2. 选择要监控指标Prometheus 的 web 界面中,您可以选择要监控指标。在左侧的导航栏中,选择 Graph,然后在查询框中输入要监控指标名称,例如 CPU 使用率(node_cpu_usage),然后点击 Execute 按钮。 3. 查看指标变化趋势 在查询结果中,您可以看到所选指标的变化趋势图表。您可以根据这些图表来判断系统的性能是否达标。例如,如果 CPU 使用率持续高于阈值,表明系统的 CPU 资源已经达到瓶颈,需要进行优化。 4. 查看指标的当前状态 在 Prometheus 的 web 界面中,您还可以查看所选指标的当前状态。在左侧的导航栏中,选择 Status,然后选择 Targets,即可查看当前监控的目标的状态。绿色表示目标正常,红色表示目标出现了异常。 通过以上操作,您可以方便地查看和判断系统的性能指标是否达标,及时发现系统问题并进行优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值