Hbase监控指标项
名词解释
JMX:Java Management Extensions,用于用于Java程序扩展监控和管理项
GC:Garbage Collection,垃圾收集,垃圾回收机制
指标项来源
| 主机名 | url |
|---|---|
| 192.168.20.10 | http://192.168.20.10:60010/jmx |
| 192.168.20.11 | http://192.168.20.11:16030/jmx |
| 192.168.20.12 | http://192.168.20.12:16030/jmx |
hbase监控项
Hadoop 系统都提供了丰富的 JMX 监控项,所以我们可以直接从 HBase 系统本身提供的 JMX 信息获取我们需要的监控项。 HBase 提供的 JMX 信息的 web 页面,地址就是 http://host:60010/jmx , JMX web页面的数据格式是 json 格式。
主机基本监控项
CPU,内存,磁盘,网络 主机四大基本监控项,这4项机器监控保证我们运行我们HBase集群的机器是正常的。
数据来源
在集群的每个机器上均能获得以下数据,分别记录每个机器的数据。
{
"name" : "java.lang:type=OperatingSystem",
"description" : "Information on the management interface of the MBean",
"modelerType" : "sun.management.OperatingSystemImpl",
"OpenFileDescriptorCount" : 377,
"MaxFileDescriptorCount" : 1048576,
"CommittedVirtualMemorySize" : 4034031616,
"TotalSwapSpaceSize" : 0,
"FreeSwapSpaceSize" : 0,
"ProcessCpuTime" : 21960000000,
"FreePhysicalMemorySize" : 1889230848,
"TotalPhysicalMemorySize" : 8370974720,
"SystemCpuLoad" : 0.6198521647307286,
"ProcessCpuLoad" : 0.00791974656810982,
"Name" : "Linux",
"Arch" : "amd64",
"SystemLoadAverage" : 1.02,
"AvailableProcessors" : 4,
"Version" : "4.4.0-131-generic",
"ObjectName" : "java.lang:type=OperatingSystem"
}
指标项说明
| 指标项 | 说明 |
|---|---|
| FreePhysicalMemorySize | 空闲物理内存大小 |
| ProcessCpuLoad | 进程cpu使用率 |
| SystemCpuLoad | 系统cpu使用率 |
| AvailableProcessors | 处理器核数 |
JVM监控项
HBase 集群涉及的系统 HDFS,HBase,ZooKeeper都是用 Java 编写的,运行在 JVM 中,必须采集 JVM 相关的监控项。
Hbase 中对于 JVM 的监控数据,主要是 JvmMetrics 的对象来进行的。
数据来源
在集群的每个机器上均能获得以下数据,分别记录每个机器的数据。
{
"name" : "Hadoop:service=HBase,name=JvmMetrics",
"modelerType" : "JvmMetrics",
"tag.Context" : "jvm",
"tag.ProcessName" : "Master",
"tag.SessionId" : "",
"tag.Hostname" : "dev01",
"MemNonHeapUsedM" : 53.011223,
"MemNonHeapCommittedM" : 53.996094,
"MemNonHeapMaxM" : -9.536743E-7,
"MemHeapUsedM" : 30.099304,
"MemHeapCommittedM" : 121.8125,
"MemHeapMaxM" : 1962.75,
"MemMaxM" : 1962.75,
"GcCountParNew" : 17,
"GcTimeMillisParNew" : 116,
"GcCountConcurrentMarkSweep" : 1,
"GcTimeMillisConcurrentMarkSweep" : 12,
"GcCount" : 18,
"GcTimeMillis" : 128,
"ThreadsNew" : 0,
"ThreadsRunnable" : 19,
"ThreadsBlocked" : 0,
"ThreadsWaiting" : 51,
"ThreadsTimedWaiting" : 16,
"ThreadsTerminated" : 0,
"LogFatal" : 0,
"LogError" : 0,
"LogWarn" : 0,
"LogInfo" : 0
}
指标项说明
JvmMetrics 主要统计的信息包括:内存的使用状态信息; GC 的统计信息;线程的统计信息;以及事件的统计信息。
| 类型 | 指标项 | 说明 |
|---|---|---|
| 内存 | 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 的数量 |
HBase集群各系统存活监控项
HBase集群各个系统的进程是否存活是必须也是最基本的监控项。具体有hmaster;regionserver;namenode;datanode;journalnode;zkfc;zookeeper的存活监控。具体判断存活的方式我们可以去判断各系统相应的进程是否存在,也可以去判断各系统的web页面或者jmx页面是否正常。
master监控
数据来源
地址:http://192.168.20.10:60010/jmx?qry=Hadoop:service=HBase,name=Master,sub=Server
{
"name" : "Hadoop:service=HBase,name=Master,sub=Server",
"modelerType" : "Master,sub=Server",
"tag.liveRegionServers" : "dev02,16020,1539595528256;dev03,16020,1539595527594",
"tag.deadRegionServers" : "",
"tag.zookeeperQuorum" : "dev03:2181,dev02:2181",
"tag.serverName" : "dev01,16020,1539595524290",
"tag.clusterId" : "0cef1691-05bd-47cd-9a76-1c3abb8e56bf",
"tag.isActiveMaster" : "true",
"tag.Context" : "master",
"tag.Hostname" : "dev01",
"masterActiveTime" : 1539595528498,
"masterStartTime" : 1539595524290,
"averageLoad" : 19.5,
"numRegionServers" : 2,
"numDeadRegionServers" : 0,
"clusterRequests" : 203
}
指标项说明
| 指标项 | 说明 |
|---|---|
| tag.liveRegionServers | 活动的region |
| tag.deadRegionServers | 停止的region |
regionserver监控
JMX全称是Java Management Extensions,用于用于Java程序扩展监控和管理项。而许多Hadoop系统都提供了丰富的JMX监控项,所以我们可以直接从HBase系统本身提供的JMX信息获取我们需要的监控项。HBase提供的JMX信息的web页面,地址就是 http://your_hmaster:60010/jmx,JMX web页面的数据格式是json格式。由于信息比较多,也提供了一个qry=name的方式获取具体某一项所需的数据,例如:http://namenode:50070/jmx?qry=hadoop:service=NameNode,name=NameNodeInfo只收集nameinfo相关的数据。 所以我们可以用多线程或多进程同时采集多个指标项,同时也要注意在每个线程处理的时候数据应该是异步的,否则同步可能导致某一个指标项采集阻塞, 使得之后的所有指标项在一个采集周期内无法正常返回数据。
数据来源
每个表每个region的数据
在每个regionserver的jmx页面均可获取到该数据
地址:
http://192.168.20.11:16030/jmx?qry=Hadoop:service=HBase,name=RegionServer,sub=Regions
http://dev03:16030/jmx?qry=Hadoop:service=HBase,name=RegionServer,sub=Regions
{
"name" : "Hadoop:service=HBase,name=RegionServer,sub=Regions",
"modelerType" : "RegionServer,sub=Regions",
"tag.Context" : "regionserver",
"tag.Hostname" : "dev02",
"Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_storeCount" : 1,
"Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_storeFileCount" : 0,
"Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_memStoreSize" : 408,
"Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_storeFileSize" : 0,
"Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_compactionsCompletedCount" : 0,
"Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_numBytesCompactedCount" : 0,
"Namespace_default_table__zw_tailers_region_01f1c83a5930d0183c0fcbad6ec5e066_metric_numFilesCompactedCount" : 0,
"Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_storeCount" : 1,
"Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_storeFileCount" : 0,
"Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_memStoreSize" : 408,
"Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_storeFileSize" : 0,
"Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_compactionsCompletedCount" : 0,
"Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_numBytesCompactedCount" : 0,
"Namespace_default_table__zw_tailers_region_175ece78282879943d46d333229e9f1c_metric_numFilesCompactedCount" : 0
}
每个regionserver的监控数据
地址:
http://192.168.20.11:16030/jmx
http://192.168.20.12:16030/jmx
大致分为server、IPC、WAL、Memory、MemoryPool四类,数据较长,以下仅展示一部分
{
"name" : "Hadoop:service=HBase,name=RegionServer,sub=Server",
"modelerType" : "RegionServer,sub=Server",
"tag.zookeeperQuorum" : "dev03:2181,dev02:2181",
"tag.serverName" : "dev02,16020,1539696865983",
"tag.clusterId" : "0cef1691-05bd-47cd-9a76-1c3abb8e56bf",
"tag.Context" : "regionserver",
"tag.Hostname" : "dev02",
"regionCount" : 20,
"blockCacheFreeSize" : 400221160,
"blockCacheCount" : 2,
"blockCacheSize" : 413528,
"blockCacheHitCount" : 3,
...
}
{
"name" : "Hadoop:service=HBase,name=RegionServer,sub=IPC",
"modelerType" : "RegionServer,sub=IPC",
"tag.Context" : "regionserver",
"tag.Hostname" : "dev02",
"queueSize" : 0,
"numCallsInGeneralQueue" : 0,
"numCallsInReplicationQueue" : 0,
...
}{
"name" : "java.lang:type=Memory",
"modelerType" : "sun.management.MemoryImpl",
"ObjectPendingFinalizationCount" : 0,
"HeapMemoryUsage" : {
"committed" : 62849024,
"init" : 65011712,
"max" : 1001586688,
"used" : 27014176
},
...
}
{
"name" : "Hadoop:service=HBase,name=RegionServer,sub=WAL",
"modelerType" : "RegionServer,sub=WAL",
"tag.Context" : "regionserver",
"tag.Hostname" : "dev02",
"AppendSize_num_ops" : 20,
"AppendSize_min" : 130,
...
}
"name" : "java.lang:type=MemoryPool,name=Par Survivor Space",
"modelerType" : "sun.management.MemoryPoolImpl",
"Valid" : true,
"Name" : "Par Survivor Space",
"Type" : "HEAP",
"Usage" : {
"committed" : 2162688,
"init" : 2162688,
"max" : 34406400,
"used" : 146208
},
...
}{
"name" : "java.lang:type=MemoryPool,name=Par Eden Space",
"modelerType" : "sun.management.MemoryPoolImpl",
"Valid" : true,
"Name" : "Par Eden Space",
"Type" : "HEAP",
"Usage" : {
"committed" : 17301504,
"init" : 17301504,
"max" : 275775488,
"used" : 14569520
},
...
}{
"name" : "java.lang:type=MemoryPool,name=CMS Old Gen",
"modelerType" : "sun.management.MemoryPoolImpl",
"Valid" : true,
"Name" : "CMS Old Gen",
"Type" : "HEAP",
"Usage" : {
"committed" : 43384832,
"init" : 43384832,
"max" : 691404800,
"used" : 12108656
},
...
}
指标项说明
每个表每个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 | |
| Namespace_xxx_table_xxx_region_xxx_metric_storeFileSize | |
| Namespace_xxx_table_xxx_region_xxx_metric_compactionsCompletedCount | 合并完成次数 |
| Namespace_xxx_table_xxx_region_xxx_metric_numBytesCompactedCount | 合并文件总大小 |
| Namespace_xxx_table_xxx_region_xxx_metric_numFilesCompactedCount | 合并完成文件个数 |
每个regionserver的指标项说明
MemoryPool 值,比如 Par Eden Space 、CMS Perm Gen、Par Survivor Space、CMS Old Gen、Code Cache
| 指标项 | 类型 | 说明 |
|---|---|---|
| regionCount | Server | Regionserver管理region数量 |
| memStoreSize | Server | Regionserver管理的总memstoresize |
| storeFileSize | Server | Regionserver管理的storefile大小 |
| staticIndexSize | Server | regionserver所管理的表索引大小 |
| storeFileCount | Server | regionserver所管理的storefile个数 |
| hlogFileSize | Server | WAL文件大小 |
| hlogFileCount | Server | WAL文件个数 |
| storeCount | Server | regionserver所管理的store个数 |
| storeFileCount | Server | regionserver所管理的storefile个数 |
| totalRequestCount | Server | 总请求数 |
| readRequestCount | Server | 读请求数 |
| writeRequestCount | Server | 写请求数 |
| compactedCellsCount | Server | 合并cell个数 |
| majorCompactedCellsCount | Server | 大合并cell个数 |
| flushedCellsSize | Server | flush到磁盘的大小 |
| splitRequestCount | Server | region分裂请求次数 |
| splitSuccessCount | Server | region分裂成功次数 |
| slowGetCount | Server | 请求完成时间超过1000ms的次数 |
| numOpenConnections | IPC | 该regionserver打开的连接数 |
| numActiveHandler | IPC | rpc handler数 |
| receivedBytes | IPC | 收到数据量 |
| sentBytes | IPC | 发出数据量 |
| SyncTime_mean | WAL | WAL写hdfs的平均时间 |
| HeapMemoryUsage>>used | Memory | 堆内存使用量 |
| Par Survivor Space>>CollectionUsage>>used | MemoryPool | Survivor内存大小 |
| Par Eden Space>>CollectionUsage>>used | MemoryPool | Eden区使用空间大小 |
| CMS Old Gen>>CollectionUsage>>used | MemoryPool | 老年代内存大小 |
hbase监控工具
hbase原生支持ganglia,如果发送给zabbix,需要自己开发获取其中的数据,解析出来。数据的格式一般是最外层一个beans的key,里面的value是一个jsonarray。arrayobject里面可能包含jsonobjec或者jsonarray。
目前测试集群使用jmxtrans+influxdb+granafa套件监控。
监控地址:http://dev01:3000/login
Hbase监控指标项的更多相关文章
- hbase 监控指标项
名词解释 JMX:Java Management Extensions,用于用于Java程序扩展监控和管理项 GC:Garbage Collection,垃圾收集,垃圾回收机制 指标项来源 主机名 u ...
- kafka监控指标项
监控配置 kafka基本分为broker.producer.consumer三个子项,每一项的启动都需要用到 $KAFKA_HOME/bin/kafka-run-class.sh 脚本,在该脚本中 ...
- Flume监控指标项
配置监控 1.修改flume-env.sh export JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmx ...
- Hadoop监控指标项
配置 修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh # 在配置namenode和datanode时都会有用到JMX_OPTS的代码,是为了减少重复提取出的公共代码 e ...
- Spark指标项监控
监控配置 spark的监控主要分为Master.Worker.driver.executor监控.Master和Worker的监控在spark集群运行时即可监控,Driver和Excutor的监控需要 ...
- Linux CPU监控指标
Linux CPU监控指标 Linux提供了非常丰富的命令可以进行CPU相关数据进行监控,例如:top.vmstat等命令.top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执 ...
- 【转载一】Grafana –美观、强大的可视化监控指标展示工具
在之前的InfluxDB系列教程 中,我们给大家介绍了当下流行的一款时序数据库--InfluxDB. 接下来给大家带来一款强大的,与InfluxDB搭配使用的前端指标项展示项目--Grafana. G ...
- MySQL 监控指标
为了排查问题,对数据库的监控是必不可少的,在此介绍下 MySQL 中的常用监控指标. 简介 MySQL 有多个分支版本,常见的有 MySQL.Percona.MariaDB,各个版本所对应的监控项也会 ...
- HikariCP监控指标介绍和应用
概述 HikariCP提供了一些监控指标,他的监控指标都是基于MicroMeter提供出来的,然后支持Prometheus和Dropwizard.本次我们将讨论一下HikariCp的监控指标有哪些,为 ...
随机推荐
- semaphore demo 并行 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
import 'dart:async'; import 'package:semaphore/semaphore.dart'; import 'dart:io'; import 'dart:conve ...
- mac 上使用 idea 上传项目代码到阿里云git上
1.Idea 打开需要上传的项目 2.先在本地创建一个git仓库 VCS --> Import into Version Control --> Create Git reposito ...
- 浅谈React编程思想
React是Facebook推出的面向视图层开发的一个框架,用于解决大型应用,包括如何很好地管理DOM结构,是构建大型,快速Web app的首选方式. React使用JavaScript来构建用户界面 ...
- DCL 管理权限
一个数据库里面有着多个用户,每个用户的权限也不仅相同. 一.查询权限 1.基本语法格式: show grants for '用户名'@'主机名'; 2.具体操作 查看 user1 用户的权限 注意: ...
- iOS 简化冗余代码
正在给深圳某家智能家居开发iPad版本,在已经存在的iPhone版上修改,该app的界面采用的是xib.xib相比代码来写界面,快速高效,但是可维护性和可读性太差.言归正传,看到这些代码后,我的心情很 ...
- 在SAP Hybris commerce Storefront里购物下单
操作过程和大家平时在网上购物没有太大差别. 选中一款心仪的产品,点击Add to cart加到购物车里: 点击Check out结帐: 生成一个购物车ID: 维护发货地址: 维护发货方式: 点击Pla ...
- es5中变量提升的问题
<script> //变量提升的问题 var tem=new Date(); //函数f 输出tem var命令会发生“变量提升”现象 //局部变量优先高于全局变量 var tem=&qu ...
- 使用FastJSON 对Map/JSON/String 进行互转
Fastjson是一个Java语言编写的高性能功能完善的JSON库,由阿里巴巴公司团队开发的主要特性主要体现在以下几个方面: 1.高性能 fastjson采用独创的算法,将parse的速度提升到极致, ...
- 51nod 2486 小b和矩阵
小b有一个m行n列的矩阵. 她会从(1,1)开始,顺时针螺旋访问该矩阵,每个元素恰好被访问一次. 请你按小b的访问顺序输出每个元素. 收起 输入 第一行输入两个数m和n,其中0<m,n≤50 ...
- python网络-静态Web服务器案例(29)
一.静态Web服务器案例代码static_web_server.py # coding:utf-8 # 导入socket模块 import socket # 导入正则表达式模块 import re # ...