HBase JMX 指标学习

news2024/10/3 6:32:31

名词解释:

JMX:Java Management Extensions,用于用于Java程序扩展监控和管理项。

GC:Garbage Collection,垃圾收集,垃圾回收机制。

1、概述

说到对Hadoop和 HBase的集群监控,大家知道的和用的最多的可能还是第3方的监控工具,cacti,ganglia,zabbix之类的。其实Hadoop本身是带有监控接口的,这个接口非常详细,也非常方便,就是JMX。

JMX全称是Java Management Extensions,用于Java程序扩展监控和管理项。而许多Hadoop系统都提供了丰富的JMX监控项,所以我们可以直接从HBase系统本身提供的JMX信息获取我们需要的监控项。HJMX web页面的数据格式是 json 格式。

2、指标来源

hbase的jmx在1.0后分开了master和regionserver的jmx监控。

启动 HBase 后,如果要查看查看 Master 的指标,请连接到 Master 的 Web UI, 默认为 http:// localhost:60010 或 HBase 1.0+中的端口 16010)

如果要查看查看 regionServer的指标,请访问区域服务器的 Web UI,默认情况下为 http:// REGIONSERVER_HOSTNAME:60030 (或 HBase 1.0+中的端口 16030)。

小技巧:

如果想要在列表中包含指标描述 - 这在你探索可用内容时非常有用,添加查询字符串?description=true,如: http://REGIONSERVER_HOSTNAME:60030/jmxdescription=true 。并非所有 bean 和属性都有描述。

由于信息比较多,也提供了一个qry=name的方式获取具体某一项所需的数据,例如:http://namenode:50070/jmx?qry=hadoop:service=NameNode,name=NameNodeInfo只收集namenode相关的数据。

所以我们可以用多线程或多进程同时采集多个指标项,同时也要注意在每个线程处理的时候数应该是异步的,否则同步可能导致某一个指标项采集阻塞, 使得之后的所有指标项在一个采集周期内无法正常返回数据。

3、监控指标说明

(1)主机基本监控项

CPU,内存,磁盘,网络 主机四大基本监控项,这4项机器监控保证我们运行我们HBase集群的机器是正常的。

数据来源:获取对象为java.lang:type=OperatingSystem,我们以http://xxxxxx:60010/jmx?qry=java.lang:type=OperatingSystem为例,可以访问到如下信息:

 

指标项说明
FreePhysicalMemorySize空闲物理内存大小
ProcessCpuLoad进程cpu使用率
SystemCpuLoad系统cpu使用率
AvailableProcessors处理器核数

(2)JVM监控项

HBase 集群涉及的系统 HDFS,HBase,ZooKeeper都是用 Java 编写的,运行在 JVM 中,必须采集 JVM 相关的监控项。 Hbase 中对于 JVM 的监控数据,主要是 JvmMetrics 的对象来进行的。

JvmMetrics 主要统计的信息包括:内存的使用状态信息; GC 的统计信息;线程的统计信息;以及事件的统计信息。

数据来源:获取对象为Hadoop:service=HBase,name=JvmMetrics,我们以http://xxxxxx:60010/jmx?qry=Hadoop:service=HBase,name=JvmMetrics为例,可以访问到如下信息:

 

类型指标项说明
内存MemNonHeapUsedMJVM 当前已经使用的 NonHeapMemory 的大小
内存MemNonHeapMaxMJVM 配置的 NonHeapMemory 的大小
内存MemHeapUsedMJVM 当前已经使用的 HeapMemory 的大小
内存MemHeapMaxMJVM 配置的 HeapMemory 的大小
内存MemMaxMJVM 运行时的可以使用的最大的内存的大小
GCGcCountParNew新生代GC次数
GCGcTimeMillisParNew新生代GC耗时(ms)
GCGcCountConcurrentMarkSweep老年代GC次数
GCGcTimeMillisConcurrentMarkSweep老年代GC耗时
线程ThreadsNew当前线程的处于 NEW 状态下的线程数量
线程ThreadsRunnable当前线程的处于 RUNNABLE 状态下的线程数量
线程ThreadsBlocked当前线程的处于 BLOCKED 状态下的线程数量
线程ThreadsWaiting当前线程的处于 WAITING 状态下的线程数量
线程ThreadsTimedWaiting当前线程的处于 TIMED_WAITING 状态下的线程数量
线程ThreadsTerminated当前线程的处于 TERMINATED 状态下的线程数量
事件LogFatal固定时间间隔内的 Fatal 的数量
事件LogError固定时间间隔内的 Error 的数量
事件LogWarn固定时间间隔内的 Warn 的数量
事件LogInfo固定时间间隔内的 Info 的数量

(3)HBase集群各系统存活监控项

HBase集群各个系统的进程是否存活是必须也是最基本的监控项。具体有hmaster;regionserver;namenode;datanode;journalnode;zkfc;zookeeper的存活监控。

具体判断存活的方式我们可以去判断各系统相应的进程是否存在,也可以去判断各系统的web页面或者jmx页面是否正常。

       3.1  master监控

数据来源:获取对象为Hadoop:service=HBase,name=Master,sub=Server,我们以http://xxxxx:60010/jmx?qry=Hadoop:service=HBase,name=Master,sub=Server为例,可以访问到如下信息:

指标项说明
tag.liveRegionServers活动的region
tag.deadRegionServers停止的region

3.2  regionserver监控

3.2.1  每个表每个region的数据

数据来源:获取对象为Hadoop:service=HBase,name=RegionServer,sub=Regions,我们以http://xxxx:60030/jmx?qry=Hadoop:service=HBase,name=RegionServer,sub=Regions为例,可以访问到如下信息(以下仅展示一部分):

 

指标项说明

每个表每个region的的指标项说明

第一个xxx代表namespace名

第二个xxx代表表名

第三个xxx代表region的ID

指标项说明
Namespace_xxx_table_xxx_region_xxx_metric_storeCountStore个数
Namespace_xxx_table_xxx_region_xxx_metric_storeFileCountStoreFile个数
Namespace_xxx_table_xxx_region_xxx_metric_memStoreSizememStrore大小
Namespace_xxx_table_xxx_region_xxx_metric_storeFileSizestoreFile大小
Namespace_xxx_table_xxx_region_xxx_metric_compactionsCompletedCount合并完成次数
Namespace_xxx_table_xxx_region_xxx_metric_numBytesCompactedCount合并文件总大小
Namespace_xxx_table_xxx_region_xxx_metric_numFilesCompactedCount合并完成文件个数

3.2.2  每个regionserver的监控数据

大致分为server、IPC、WAL、Memory、MemoryPool四类,数据较长,以下仅展示一部分

 

 

 

 

 

下面介绍一些最重要的 RegionServer 指标(摘自HBase官网):

hbase.regionserver.regionCount:区域服务器托管的区域数量

hbase.regionserver.storeFileCount:当前由 regionserver 管理的磁盘上的存储文件数

hbase.regionserver.storeFileSize:磁盘上存储文件的聚合大小

hbase.regionserver.hlogFileCount:尚未归档的预写日志数

hbase.regionserver.totalRequestCount:收到的请求总数

hbase.regionserver.readRequestCount:收到的读取请求数

hbase.regionserver.writeRequestCount:收到的写入请求数

hbase.regionserver.numOpenConnections:RPC 层的打开连接数

hbase.regionserver.numActiveHandler:主动为请求提供服务的 RPC 处理程序的数量

hbase.regionserver.numCallsInGeneralQueue:当前排队的用户请求数

hbase.regionserver.numCallsInReplicationQueue:从复制中收到的当前排队操作的数量

hbase.regionserver.numCallsInPriorityQueue:当前排队的优先级(内部管家)请求的数量

hbase.regionserver.flushQueueLength:memstore 刷新队列的当前深度。如果增加,我们落后于清除 HDFS 的存储库。

hbase.regionserver.updatesBlockedTime:已阻止更新的毫秒数,因此可以刷新 memstore

hbase.regionserver.compactionQueueLength:压缩请求队列的当前深度。如果增加,我们落后于 storefile 压缩。

hbase.regionserver.blockCacheHitCount:块缓存命中数

hbase.regionserver.blockCacheMissCount:块缓存未命中数

hbase.regionserver.blockCacheExpressHitPercent:打开缓存请求的时间百分比达到缓存

hbase.regionserver.percentFilesLocal:可从本地 DataNode 读取的存储文件数据的百分比,0-100

hbase.regionserver. <op>_<measure></measure></op>操作延迟,其中<op>是 Append,Delete,Mutate,Get,Replay,Increment 之一;其中<measure>是 min,max,mean,median,75th_percentile,95th_percentile,99th_percentile</measure> </op>中的一个

hbase.regionserver.slow <op>计数</op>:我们认为操作的数量很慢,其中<op>是以上列表中的一个</op>

hbase.regionserver.GcTimeMillis:垃圾收集所花费的时间,以毫秒为单位

hbase.regionserver.GcTimeMillisParNew:在年轻一代的垃圾收集中花费的时间,以毫秒为单位

hbase.regionserver.GcTimeMillisConcurrentMarkSweep:在旧一代的垃圾收集中花费的时间,以毫秒为单位

hbase.regionserver.authenticationSuccesses:身份验证成功的客户端连接数

hbase.regionserver.authenticationFailures:客户端连接验证失败的次数

hbase.regionserver.mutationsWithoutWALCount:提交的写入计数带有一个标志,指示它们应绕过写入日志

IPC类:

TotalCallTime_mean:总调用耗时(包括队时间和处理时间)

TotalCallTime_95th_percentile:调用P95耗时(包括队时间和处理时间)

TotalCallTime_99th_percentile:调用P99耗时(包括队时间和处理时间)

QueueCallTime_mean:队列调用耗时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/380113.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv8详解 【网络结构+代码+实操】

文章目录YOLOv8 概述模型结构Loss 计算训练数据增强训练策略模型推理过程网络模型解析卷积神经单元&#xff08;model.py&#xff09;Yolov8实操快速入门环境配置数据集准备模型的训练/验证/预测/导出使用CLI使用python多任务支持检测实例分割分类配置设置操作类型训练预测验证…

FastDDS-4.RTPS层

4. RTPS层 eprosima Fast DDS的较低层RTPS层是RTPS标准协议的实现。与DDS层相比&#xff0c;该层提供了对通信协议内部的更多控制&#xff0c;因此高级用户可以更好地控制库的功能。 4.1 与DDS层的关系 该层的元素与DDS层的元素一一对应&#xff0c;并添加了一些元素。该对应…

【使用两个栈实现队列】

文章目录一、栈和队列的基本特点二、基本接口函数的实现1.栈的接口2.创建队列骨架3.入队操作4.取出队列元素5.返回队首元素6.判断队列是否为空7.销毁队列总结一、栈和队列的基本特点 栈的特点是后进先出&#xff0c;而队列的特点是先进先出。 使用两个栈实现队列&#xff0c;必…

【DataX】数据同步到PG时遇到的分区不存在问题

数据同步到PG时遇到的分区不存在问题前言正文问题分析解决方法结语前言 大概说下这个问题牵扯出来的背景&#xff0c;一个外场项目&#xff0c;选型用PG存业务数据&#xff0c;然后客户要求保存保留一年的数据&#xff0c;运行到现在服务器5个T的磁盘已经有点扛不住了&#xf…

内存的管理

取指令——译码——执行——返存 计组课我们学过cpu真正读指令并非是从内存中读入&#xff0c;而是从cache读和存&#xff0c;再由cache进行取指或返存&#xff0c;因为cpu指令周期比内存周期速度快很多&#xff0c;cpu若要取指或返存都需要等待内存完成他的动作才可以进行下一…

python爬虫:如何定义内容提取器

项目背景 在python 即时网络爬虫项目启动说明中我们讨论一个数字&#xff1a;程序员浪费在调测内容提取规则上的时间&#xff0c;从而我们发起了这个项目&#xff0c;把程序员从繁琐的调测规则中解放出来&#xff0c;投入到更高端的数据处理工作中。 解决方案 为了解决这个问题…

微信小程序使用scss编译wxss文件的配置步骤

文章目录1、在 vscode 中搜索 easysass 插件并安装2、在微信开发工具中导入安装的easysass插件3、修改 spook.easysass-0.0.6/package.json 文件中的配置4、重启开发者工具&#xff0c;就可用使用了微信小程序开发者工具集成了 vscode 编辑器&#xff0c;可以使用 vscode 中众多…

C++修炼之练气期三层——函数重载

目录 1.引例 2.函数重载的概念 3.C支持函数重载的原理 1.引例 倘若现在要实现一个加法计算器&#xff0c;用C语言实现的话我们会选择这样的方式&#xff1a; int Add_int(int a, int b) {return a b; }double Add_double(double a, double b) {return a b; } 在使用加…

Exposure2023专业摄影RAW格式大师专业滤镜特效

Exposure2023是一款专为摄影艺术设计的图像编辑器。新的 Exposure2023结合了专业级的照片调整、庞大的华丽照片库和令人愉悦的高效设计。可以提供最大&#xff0c;最准确的电影外观选择。Exposure的创意外观不仅限于电影模拟&#xff0c;从干净优雅的现代风格到引人注目的色彩变…

SpringBoot+Nacos+OpenFeign环境搭建

目录 1.boot方式nacos与openFeign集成 1.引入依赖 2.添加配置 3.测试接口调用 4.常见问题&#xff1a; 1.版本依赖 2.nacos客户端 2.cloud方式nacos与openFeign集成 1.引入依赖 2.添加配置 3.接口定义 4.开启FeignClients客户端 5.远程接口测试 6.Nacos配置中心 1…

Java - 数据结构,二叉树

一、什么是树 概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。它具有以下的特点&#xff1a; 1、有…

SAP ERP系统MM模块常用增强之四:采购申请输入字段的校验检查

在SAP/ERP项目的实施中采购管理模块&#xff08;MM&#xff09;的创建和修改采购申请一般都会有输入字段校验检查的需求&#xff0c;来防止业务人员录入错误或少录入数据&#xff0c;这方面需求部分是可以通过配置实现&#xff0c;比如一些字段是否必输&#xff0c;是否显示等&…

WebRTC拥塞控制算法——GCC介绍

网络拥塞是基于IP协议的数据报交换网络中常见的一种网络传输问题&#xff0c;它对网络传输的质量有严重的影响&#xff0c; 网络拥塞是导致网络吞吐降低&#xff0c; 网络丢包等的主要原因之一&#xff0c; 这些问题使得上层应用无法有效的利用网络带宽获得高质量的网络传输效果…

C++——智能指针1

目录 RAII auto_ptr模拟实现 智能指针拷贝问题 唯一指针 shared_ptr&#xff08;可以拷贝&#xff09; shared_ptr模拟实现 完整代码 循环引用 weak_ptr模拟实现 定制删除器 shared_ptr定制删除器模拟实现 内存泄漏 RAII RAII&#xff08;Resource Acquisit…

SkyWalking使用案例

SkyWalking监控java项目Halo博客 Halo是一个开源的博客项目&#xff0c;使用java编写&#xff0c;官网地址&#xff1a;https://halo.run/ 安装java环境&#xff0c;Halo对java版本有限制&#xff0c;1.4.3版本以上需要使用java11以上 apt -y install openjdk-11-jdk java -…

matplotlib常用操作

文章目录1 matplotlib绘图1.1 绘图步骤2 matplotlib基本元素2.1 matplotlib 画布2.2 设置坐标轴长度和范围2.3 设置图形的线型和颜色2.4 设置图形刻度范围、刻度标签和坐标轴标签等2.4.1 设置刻度范围2.4.2 设置坐标轴刻度2.5 文本标签图例3 matplotlib的ax对象绘图4 绘制子图5…

2.3 黑群晖驱动:开启nvme缓存、将nvme缓存作为存储盘 教程

黑群晖驱动安装工具下载&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1CMLl6waOuW-Ys2gKZx7Jgg?pwdchct提取码&#xff1a;chct一、开启NVME缓存在群辉->控制面板->终端机和SNMP->终端机中 勾选“启动SSH”功能&#xff0c;并点击应用&#xff1b;下载安装P…

HACKTHEBOX——Teacher

nmapnmap -sV -sC -p- -T4 -oA nmap 10.10.10.153nmap只发现了对外开放了80端口&#xff0c;从http-title看出可能是某个中学的官网http打开网站确实是一个官网&#xff0c;查看每个接口看看有没有可以利用的地方发现了一个接口&#xff0c;/images/5.png&#xff0c;但是响应包…

国内有哪些支持定制化的低代码平台?

编者按&#xff1a;贴合企业业务需求的系统才是好系统&#xff0c;高程度的定制能力平台意味着可以提供更高契合度的产品&#xff0c;更好地匹配业务需求。本文介绍了国内支持定制化的老厂商低代码平台&#xff0c;具有源码交付、私有化部署、国产化、数据对接等优势。关键词&a…

服务端开发之Java备战秋招面试篇5

努力了那么多年,回头一望,几乎全是漫长的挫折和煎熬。对于大多数人的一生来说,顺风顺水只是偶尔,挫折、不堪、焦虑和迷茫才是主旋律。我们登上并非我们所选择的舞台,演出并非我们所选择的剧本。继续加油吧&#xff01; 目录 1.ArrayList与LinkedList区别&#xff0c; 应用场景…