开源大数据平台E-(简称“EMR”)是云原生开源大数据平台,向客户提供简单易集成的、Hive、Spark、Flink、、、、Delta、Hudi等开源大数据计算和存储引擎 。本文旨在分享阿里云对EMR平台大数据服务的监控实践 。
EMR 简介
开源大数据开发平台E-(简称“EMR”)作为大数据处理的系统解决方案被越来越多的企业所接受 。而阿里云EMR构建于云服务器ECS上,基于开源的 和 Spark可以方便地使用和Spark生态系统中的其他周边系统分析和处理数据,还可以与阿里云OSS和RDS等云数据存储系统和数据库系统进行数据传输,让企业可以快速搭建、Spark、Flink、Kafka和HBase等开源大数据服务 。
我们可以看到,E-的核心是集群 。E-集群是由一个或多个ECS实例组成的、Flink、Druid、集群 。以为例,每个ECS 实例上通常都运行了一些进程(例如,、、和),这些进程共同组成了集群 。在众多大数据组件背后,是海量需要被观测的指标,这就给运维工程师、SRE工程师带来了巨大的挑战 。那么,构建E-之后,我们针对不同组件,应该哪些指标呢?
E- 观测指标解读
指标采集
E-指标观测主要包括HOST监控、HDFS 、YARN、Hive、Kafka、、和Flink等,那么接下来我们将进行逐一解读 。
HOST指标[1]
提供ECS节点CPU、内存、磁盘、load、网络、等监控指标 。
HDFS指标[2]
HDFS(File )是一种分布式文件系统sql server数据库操作工具 , 适用于大规模数据的分布式读写 , 特别是读多写少的场景 。HDFS指标包括HOME、、和指标 。
YARN指标[3]
YARN是系统的核心组件,主要功能包括负责集群的资源管理,对作业进行调度运行以及监控 。YARN指标包括HOME、Queue、、、和 。
Hive指标[4]
Hive是一个基于的数据仓库框架,在大数据业务场景中,主要用来进行数据提取、转化和加载(ETL)以及元数据管理 。Hive由(查询服务器)、Hive (元数据管理模块)和Hive 构成,其指标包括和 。
指标
描述
JVM最大可用堆内存,单位:Byte 。
d
JVM已使用堆内存,单位:Byte 。
_used
JVM已使用堆外内存量,单位:Byte 。
当前活跃的alter table请求数 。
当前活跃的 table请求数 。
当前活跃的drop table请求数 。
alter table请求平均时间,单位:ms 。
ntext
alter table with env 请求平均时间,单位:ms 。
e
table请求平均时间,单位:ms 。
table with env 请求平均时间 , 单位:ms 。
drop table请求平均时间,单位:ms 。
text
drop table with env 请求平均时间,单位:ms 。
get all 请求平均时间,单位:ms 。
get all 请求平均时间 , 单位:ms 。
e
get 请求平均时间,单位:ms 。
es
get 请求平均时间 , 单位:ms 。
able
get multi table请求平均时间,单位:ms 。
get table请求平均时间,单位:ms 。
get tableby name请求平均时间,单位:ms 。
eq
get table req请求平均时间,单位:ms 。
get table 请求平均时间 , 单位:ms 。
get 请求平均时间,单位:ms 。
getby type请求平均时间,单位:ms 。
指标
描述
当前活跃的个数 。
JVM初始化总内存,单位:Byte 。
JVM已预留总内存,单位:Byte 。
JVM最大可用总内存 , 单位:Byte 。
JVM已预留堆内存,单位:Byte 。
ted
JVM初始化堆内存,单位:Byte 。
JVM已预留堆外内存,单位:Byte 。
JVM初始化堆外内存,单位:Byte 。
JVM最大可用堆外内存,单位:Byte 。
JVM PSGC次数 。
JVM PSGC时间,单位:ms 。
JVM PSGC时间,单位:ms 。
JVM 线程数 。
JVM线程数 。
JVM 线程数 。
JVM 线程数 。
JVM new状态线程数 。
JVM 线程数 。
JVM 线程数 。
JVM 线程数 。
JVM 线程数 。
JVM最大可用堆内存,单位:Byte 。
JVM已使用堆内存sql server数据库操作工具,单位:Byte 。
JVM已使用堆外内存量 , 单位:Byte 。
当前打开的数 。
提交的Hive on MR作业总数 。
提交的Hive on Tez作业总数 。
累计连接数 。
当前请求数 。
已结束的SQL总数 。
er
当前活跃用户数 。
当前打开的连接数 。
执行的平均时间,单位:ms 。
NG
SQL任务处于状态的平均时间 , 单位:ms 。
NG
运SQL任务处于状态的平均时间,单位:ms 。
提交查询的平均时间 , 单位:ms 。
执行查询的平均时间 , 单位:ms 。
服务启动后成功的查询数 。
服务启动后失败的查询数 。
指标[5]
是一个分布式、高可用性的协调服务 。提供分布式配置服务、同步服务和命名注册等功能 。
指标
描述
接收的包的数量 。
发送的包的数量 。
平均请求延迟 , 单位:ms 。
最小请求延迟,单位:ms 。
最大请求延迟,单位:ms 。
watch的数量 。
znode的数量 。
ions
存活的连接数 。
sts
排队请求的数量 。当超过了它的处理能力时,该值会增大 。
size
的数据大?。ń?浦担?nbsp;, 单位:Byte 。
打开文件的数量 。
最大允许打开的文件数量 。
节点状态:
同步的服务数量 。
Kafka指标[6]
消息队列Kafka版是阿里云提供的分布式、高吞吐、可扩展的消息队列服务 。消息队列Kafka版广泛用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等大数据领域,已成为大数据生态中不可或缺的部分 。
指标[7]
为存储在 中的数据提供了高性能和低延迟的SQL查询 。
指标
描述
结果集缓存大?。?ノ唬築yte 。
当前正在执行的查询数量 。
当前正在等待的查询数量 。
95th
95%的查询耗时时间,单位:ms 。
集群正在in fight状态的查询数量 。
75th
75%的查询耗时时间,单位:ms 。
的客户端对服务线程的等待时间,单位:ms 。
99%的 客户端等待建立连接所花费的时间,单位:ms 。
99%的查询耗时时间,单位:ms 。
_9th
99%的DDL操作耗时时间,单位:ms 。
90th
90%的查询耗时时间,单位:ms 。
th
90%的DDL操作耗时时间,单位:ms 。
50th
50%的查询耗时时间,单位:ms 。
th
50%的DDL操作耗时时间,单位:ms 。
th
95%的DDL操作耗时时间,单位:ms 。
在进程生命周期内缺失 id的scan range总数 。
th
75%的DDL操作耗时时间 , 单位:ms 。
任何运算符溢出的查询数 。
在进程生命周期内读取的扫描范围总数 。
由于不活动而过期的查询数 。
结果集缓存记录数 。
打开的会话数 。
d
由于不活动而过期的会话数 。
ight
当前正在执行的查询片段实例的数量 。
red
在此服务器实例上注册的查询总数 。包括正在进行中并等待关闭的查询 。
当前为写入而打开的HDFS文件数 。
在进程生命周期内处理的查询总数 。
在进程生命周期内尝试的 reads总数 。
打开会话的数量 。
在进程的生命周期内在此后端执行的查询总数 。
在进程生命周期内处理的查询片段总数 。
由于服务队列溢出而被拒绝的传入RPC总数 。
read比常规读取操作快的总次数 。
当前使用的字节数 。
当前在此后端上执行的查询数 。
处于健康状态的执行器组总数 。
由于服务队列溢出而被拒绝的传入RPC总数 。
向注册的后端总数 。
峰值使用的字节数 。
文章插图
文章插图
已被阻止等待接收片段初始化的发件人总数 。
峰值使用字节数 。
本地作业数 。
当前使用字节数 。
used
已使用内存 , 单位:Byte 。
至少有一个执行程序的执行程序组总数 。
RSS的内存大?。?包括、缓冲池和JVM,单位:Byte 。
超时等待接收片段初始化的发送者总数 。
等待接收片段初始化的发送者数量 。
l
作业数 。
进程中内存映射的总字节数(虚拟内存大?。?,单位:Byte 。
【统一观测 使用Prometheus监控E-MapReduce】HUE指标[8]
指标
描述
请求响应时间平均值 。
95%的请求响应时间 。
请求响应时间标准差 。
50%的请求响应时间 。
75%的请求响应时间 。
请求响应时间计数 。
最近5分钟的请求响应速率 。
请求响应时间最小值 。
请求响应时间总和 。
请求响应时间的最大值 。
请求响应速率平均值 。
99%的最近一小时请求响应时间 。
最近15分钟请求响应速率 。
e
99.9%的请求响应时间 。
最近1分钟的请求响应速率 。
al
活跃用户总数 。
最近1小时的活跃用户数 。
用户总数 。
当前线程总数 。
常驻线程数量 。
查询数量总和 。
ons
当前异常请求数 。
当前活跃请求数 。
Kudu指标[9]
参数
指标
描述
h(99)
99%的操作队列的长度 。
h(75)
75%的操作队列的长度 。
h(mean)
操作队列的长度的平均值 。
ime(99)
99
99%的RPC队列的等待时间,单位:μs 。
ime(75)
75
75%的RPC队列的等待时间 , 单位:μs 。
ime(mean)
RPC队列的等待时间的平均值,单位:μs 。
(99)
99%的线程的负载 。
(75)
75%的线程的负载 。
(mean)
线程的负载的平均值 。
(99)
99%的操作执行时间 , 单位:μs 。
(75)
75%的操作执行时间 , 单位:μs 。
(mean)
操作执行时间的平均值,单位:μs 。
(99)
99%的操作准备时间,单位:μs 。
(75)
75%的操作准备时间,单位:μs 。
(mean)
操作准备时间的平均值,单位:μs 。
(99)
99%的 flush时间,单位:ms 。
(75)
75%的 flush时间,单位:ms 。
(mean)
flush时间的平均值 , 单位:ms 。
(99)
99%的日志的时间,单位:μs 。
(75)
75%的日志的时间,单位:μs 。
(mean)
日志的时间的平均值,单位:μs 。
(99)
99%的 flush时间,单位:ms 。
(75)
75%的 flush时间,单位:ms 。
(mean)
flush时间的平均值,单位:ms 。
gth(99)
99
99%的准备队列的长度 。
gth(75)
75
75%的准备队列的长度 。
gth(mean)
准备队列的长度的平均值 。
(99)
99%的日志GC的时间,单位:ms 。
(75)
75%的日志GC的时间,单位:ms 。
(mean)
_mean
日志GC的时间的平均值,单位:ms 。
(99)
99%的日志Sync的时间,单位:μs 。
(75)
75%的日志Sync的时间,单位:μs 。
(mean)
日志Sync的时间的平均值,单位:μs 。
(99)
99%的操作在准备队列的等待时间 , 单位:μs 。
(75)
75%的操作在准备队列的等待时间,单位:μs 。
(mean)
操作在准备队列的等待时间的平均值,单位:μs 。
pted
RPC请求接收的数量 。
ge
Block缓存的使用量,单位:Byte 。
处于状态的数量 。
Full状态的数据目录个数 。
flow
RPC队列溢出次数 。
_skew
服务器上承载的最多的数量与最少的数量的差值 。
正在GC的日志数量 。
d
失效的数据目录个数 。
内存压力拒绝的请求个数 。
ons
内存压力拒绝的事务个数 。
指标[10]
EMR 完全兼容开源版本的产品特性,并且在开源的基础上优化了读写性能,提升了与EMR其他组件快速集成的能力 。
指标
描述
数据无法从*表中任一副本获取的次数 。
*表中数据检查失败的次数 。
oss
*表中数据不在任何一个副本中的次数 。
*表检查元数据失败的次数 。
*表中元数据丢失的次数 。
写入*表中的Block重复的次数 。
中与状态相关错误出现的次数 。
网络或类似的错误出现的次数 。
中非硬件或状态错误出现的次数 。
分布式连接重试出错的次数 。
分布式连接无法找到表的次数 。
分布式连接得到的副本不新鲜的次数 。
在所有次重试结束后分布式连接失败的次数 。
Slow Read的次数 。
由于Slow Read导致的线程减少的次数 。
Task
中的任务个数 。
中的任务个数 。
中的任务个数 。
ask
中的任务个数 。
ask
_pool中的任务个数 。
l中的任务个数 。
TCP连接个数 。
本文到此结束,希望对大家有所帮助 。
- 下水道疏通器怎么使用
- ?使用灭火器灭火的最佳位置是
- 轻诺必寡信含义讲解和使用场合 ?轻诺必寡信什么意思
- Excel中如何使用CELL函数获取当前打开的工作簿名称?学习了
- 大闸蟹礼券会不会重复使用
- 100份PDF合并还不到3分钟,这3个方法非常简单!请低调使用
- 香奈儿智慧紧肤提拉眼霜怎么样 香奈儿智慧紧肤提拉眼霜怎么使用
- 当贝助手2.8.8.1版本更新 UI风格整体统一 功能更加完善!
- PIN是什么意思
- 使用UI Automator 为 Android 应用程序编写自动化测试脚本