HBase JMX 指标学习

这篇具有很好参考价值的文章主要介绍了HBase JMX 指标学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

名词解释:

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为例,可以访问到如下信息:

hbase 监控指标,Hbase,hbase,学习,hadoop

 

指标项 说明
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为例,可以访问到如下信息:

hbase 监控指标,Hbase,hbase,学习,hadoop

 

类型 指标项 说明
内存 MemNonHeapUsedM JVM 当前已经使用的 NonHeapMemory 的大小
内存 MemNonHeapMaxM JVM 配置的 NonHeapMemory 的大小
内存 MemHeapUsedM JVM 当前已经使用的 HeapMemory 的大小
内存 MemHeapMaxM JVM 配置的 HeapMemory 的大小
内存 MemMaxM JVM 运行时的可以使用的最大的内存的大小
GC GcCountParNew 新生代GC次数
GC GcTimeMillisParNew 新生代GC耗时(ms)
GC GcCountConcurrentMarkSweep 老年代GC次数
GC GcTimeMillisConcurrentMarkSweep 老年代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为例,可以访问到如下信息:

hbase 监控指标,Hbase,hbase,学习,hadoop

指标项 说明
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为例,可以访问到如下信息(以下仅展示一部分):

hbase 监控指标,Hbase,hbase,学习,hadoop

 

指标项说明

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

第一个xxx代表namespace名

第二个xxx代表表名

第三个xxx代表region的ID

指标项 说明
Namespace_xxx_table_xxx_region_xxx_metric_storeCount Store个数
Namespace_xxx_table_xxx_region_xxx_metric_storeFileCount StoreFile个数
Namespace_xxx_table_xxx_region_xxx_metric_memStoreSize memStrore大小
Namespace_xxx_table_xxx_region_xxx_metric_storeFileSize storeFile大小
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四类,数据较长,以下仅展示一部分

 

hbase 监控指标,Hbase,hbase,学习,hadoop 

hbase 监控指标,Hbase,hbase,学习,hadoop 

 

 

下面介绍一些最重要的 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:队列调用耗时文章来源地址https://www.toymoban.com/news/detail-703463.html

到了这里,关于HBase JMX 指标学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • hadoop -- Hbase

    HBase是一个分布式、可扩展、面向列的数据存储(百万级别列)、可伸缩、高可靠性、实时读写的NoSQL 数据库。 HBase利用 Hadoop的 HDFS作为其文件存储系统, 利用MapReduce 来处理HBase中的海量数据, 利用Zookeeper作为分布式协同服务。 HBase 基本的操作命令:  创建表:  创建一个

    2024年02月15日
    浏览(39)
  • Hadoop安装配置HBase

    1、文件准备 http://archive.apache.org/dist/hbase/1.3.1/下载hbase-1.3.1-bin.tar.gz并上传到虚拟机/root目录下。 2、安装          切换目录 [root@hadoop00 ~]# cd /usr/local 新建文件夹 [root@hadoop00 local]# mkdir hbase 解压文件 [root@hadoop00 local]# tar zxvf /root/hbase-1.3.1-bin.tar.gz -C /usr/local/hbase 3、环境变量

    2024年01月24日
    浏览(52)
  • hbase报错 ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

    运行环境: hadoop3.2.3(伪分布式) jdk1.8 hbase2.5.5 解决方案: 1.删除hbase内置zookeeper信息 2.删除hdfs中hbase相关信息 重启hbase即可。

    2024年02月03日
    浏览(51)
  • Hadoop中HBase命令行操作

    HBase 提供了Shell命令行,功能类似于Oracle、MySQL等关系库的SQL Plus窗口那样,用户可以通过命令行模式进行创建表、新增和更新数据,以及删除表的操作。 采用的底层存储为HDFS。使用Hbase客户端操作,执行查看Hbase版本、状态、查看帮助命令。创建表、修改表、插入数据、删除

    2024年01月24日
    浏览(47)
  • zookeeper + hadoop + hbase + phoenix

    IP hostname 192.168.23.130 hadoop01 192.168.23.131 hadoop02 192.168.23.132 hadoop03 jdk-1.8 zookeeper-3.8.1 hadoop-3.2.4 hbase-2.4.15 phoenix-2.4.0-5.1.3 1、关闭防火墙 2、设置主机名 3、配置主机hosts 4、设置ssh免密登录 分发JDK安装包到其他节点 配置JDK环境变量(所有节点都需要执行) 修改zookeeper配置 添加z

    2024年02月06日
    浏览(47)
  • 安装HBase后查看HBase版本时报错(错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty)的解决方案

    目录 一、错误 二、解决方法 三、错误分析 在安装完成HBase(安装HBase的具体教程可参考HBase2.2.2安装和编程实践指南)后显示HBase版本时报错: 显示HBase的版本信息代码如下(若已配置环境变量直接输入hbase version即可): 报错信息如下: 修改/usr/local/hbase/conf/hbase-env.sh配置文

    2024年02月04日
    浏览(58)
  • Hadoop Hbase Hive 版本对照一览

    官网内容记录,仅供参考

    2024年02月13日
    浏览(38)
  • Hadoop 之 Hbase 配置与使用(四)

    HBase 是一个分布式的、面向列的开源数据库:Hbase API Hbase 下载 跳转到下载链接 1.启动 hadoop 集群 Hadoop 集群搭建参考:Hadoop 搭建 2.启动 zookeeper 集群 ZOOKEEPER 集群搭建说明 3.启动 hbase 集群 查看 UI 监控:http://192.168.1.6:16010/master-status 4.集群启停脚本 测试配置效果 JDK 版本 工程

    2024年02月15日
    浏览(42)
  • HBase启动后查询报错:ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing

    报错信息: 查询百度 https://blog.csdn.net/weixin_43648549/article/details/123615758 (内容大概需要进行HBase初始化) 删除zookeeper中的所有的/hbase目录 删除HDFS中的/hbase目录(具体目录看hbase-site.xml文件) 然后重新启动 但是解决这个问题的时候没有看见最后一个问题就去解决了,导致具体解

    2024年02月04日
    浏览(45)
  • hbase配置及解决错误: 找不到或无法加载主类 org.apache.hadoop.hbase.util.GetJavaProperty

    如图所示 1.改一下hbase/bin/目录下的hbase文件 2.187行,在add_to_cp_if_exists “${HBASE_HOME}/hbase-server/target” 这里下面加上两行 3.把1行下面的注释

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包