HBase 集群监控
为了保证系统的稳定性,可靠性,可运维性。
公司有自己的监控系统,我们所要做的就是将 HBase 中我们关心的指标项发送到监控系统去,问题就转换为我们开发,采集并返回哪些 HBase 集群监控指标项。
HBase 集群监控指标采集的监控数据主要包括以下几个方面:某台机器 OS 层面上的数据,例如 CPU、内存、磁盘、网络、load、网络流量等;某台 regionserver(或master)机器 jvm 的状态,例如关于线程的信息,GC 的次数和时间,内存使用状况,以及 ERROR、WARN、Fatal 事件出现的次数;regionserver(或 master)进程中的统计信息。
可以通过以下地址获取 HBase 提供的 JMX 信息的 web 页面
http://your_master:60010/jmx //所有的bean
JMX web 页面的数据格式是json格式,信息很多!
OS 监控数据HBase 中对于 OS 的监控数据,主要是 OperatingSystem 的对象来进行的,如下就是我提取出来的 JSON 信息,
{ "name" : "java.lang:type=OperatingSystem", "modelerType" : "com.sun.management.UnixOperatingSystem", "MaxFileDescriptorCount" : 1000000, "OpenFileDescriptorCount" : 413, "CommittedVirtualMemorySize" : 1892225024, "FreePhysicalMemorySize" : 284946432, "FreeSwapSpaceSize" : 535703552, "ProcessCpuLoad" : 0.0016732901066722444, "ProcessCpuTime" : 59306210000000, "SystemCpuLoad" : 0.018197029910060655, "TotalPhysicalMemorySize" : 16660848640, "TotalSwapSpaceSize" : 536862720, "AvailableProcessors" : 8, "Arch" : "amd64", "SystemLoadAverage" : 0.0, "Name" : "Linux", "Version" : "2.6.32-431.11.7.el6.ucloud.x86_64", "ObjectName" : "java.lang:type=OperatingSystem" }
其中比较重要的指标有 OpenFileDescriptorCount , FreePhysicalMemorySize , ProcessCpuLoad , SystemCpuLoad , AvailableProcessors , SystemLoadAverage
JVM 监控数据Hbase 中对于 JVM 的监控数据,主要是 JvmMetrics 的对象来进行的,如下就是我提取出来的 JSON 信息,
{ "name" : "Hadoop:service=HBase,name=JvmMetrics", "modelerType" : "JvmMetrics", "tag.Context" : "jvm", "tag.ProcessName" : "Master", "tag.SessionId" : "", "tag.Hostname" : "uhadoop-qrljqo-master2", "MemNonHeapUsedM" : 53.846107, "MemNonHeapCommittedM" : 85.84375, "MemNonHeapMaxM" : 130.0, "MemHeapUsedM" : 79.05823, "MemHeapCommittedM" : 240.125, "MemHeapMaxM" : 989.875, "MemMaxM" : 989.875, "GcCountParNew" : 15190, "GcTimeMillisParNew" : 72300, "GcCountConcurrentMarkSweep" : 2, "GcTimeMillisConcurrentMarkSweep" : 319, "GcCount" : 15192, "GcTimeMillis" : 72619, "ThreadsNew" : 0, "ThreadsRunnable" : 21, "ThreadsBlocked" : 0, "ThreadsWaiting" : 144, "ThreadsTimedWaiting" : 18, "ThreadsTerminated" : 0, "LogFatal" : 0, "LogError" : 0, "LogWarn" : 0, "LogInfo" : 0 }
JvmMetrics 主要统计的信息包括:内存的使用状态信息;GC的统计信息;线程的统计信息;以及事件的统计信息。
内存的统计信息主要是:JVM 当前已经使用的 NonHeapMemory 的大小、以及配置的 NonHeapMemory 的大小;JVM 当前已经使用的 HeapMemory 的大小、以及配置的 HeapMemory 的大小; JVM 运行时的可以使用的最大的内存的大小。
GC 的统计较为简单,仅统计了进程在固定间隔内 GC 的次数和花费的总时间。
线程的统计,主要是统计进程内当前线程的处于 NEW 、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED 这六种状态下的线程数量。
对于事件的统计,主要统计固定时间间隔内的 Fatal、Error、Warn 以及 Info 的数量。(这块好像不怎么重要)
Region Servers 健康你也可以通过如下地址:
http://your_master:60010/jmx?qry=Hadoop:service=HBase,name=Master,sub=Server
获得到 Region Servers 健康值:
{ "name" : "Hadoop:service=HBase,name=Master,sub=Server", "modelerType" : "Master,sub=Server", "tag.liveRegionServers" : "xxx", "tag.deadRegionServers" : "", "tag.zookeeperQuorum" : "xxx", "tag.serverName" : "xxx2,60000,1495683310213", "tag.clusterId" : "e5e044a3-ef9f-48f7-ba63-637376f5fa90", "tag.isActiveMaster" : "true", "tag.Context" : "master", "tag.Hostname" : "xxx", "masterActiveTime" : 1495683312239, "masterStartTime" : 1495683310213, "averageLoad" : 143.66666666666666, "numRegionServers" : 3, "numDeadRegionServers" : 0, "clusterRequests" : 1297834323 }MemoryPool
从全部的 JSON 值中你会看到很多种 MemoryPool 值,比如 Par Eden Space 、CMS Perm Gen、Par Survivor Space、CMS Old Gen、Code Cache ,按需获取吧。
任何一个服务的监控系统都是一个不断迭代,不断优化的过程,不可能一开始就做到最好。监控总是比问题发生来的更早一些,而每一次出问题,又进一步加强相应方面的监控,我们需要让监控系统从出问题时才报警到可能出现问题时就预警逐渐过渡,最终让监控系统成为我们保证系统稳定性的一个有力工具。
监控指标有很多,但请按需获取 ! 转载文章请注明原出处,谢谢支持! http://www.54tianzhisheng.cn/2017/10/21/HBase-metrics/
推荐相关文章HBase集群安装部署 1. 服务器配置好,搭建大数据集群服务器看这篇:[搭建学习使用的大数据集群环境:windows使用vmware安装三台虚拟机,配置好网络环境]
基于阿里云HBase搭建OpenTSDB OpenTSDB是一个基于HBase的分布式、可伸缩的开源时序数据库。OpenTSDB由TSD(Time Series Daemon)和一系列命令行工具组成。TSD用于接收用户请求并将时序数据存储在HBase中。
相关文章
- 应用程序连接hbase报错:java.net.SocketTimeoutException: callTimeout=60000
- hbase每个RS高达几十上百万个压缩队列 日志显示频繁的minor compaction 现在导致写入数据变的缓慢? 这种情况该如何优化?
- (H2与HBase)面向行or面向列的存储模型?
- Hbase报错:org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet
- OpenTSDB 底层 HBase 的 Rowkey 是如何设计的
- HBase
- 《HBase管理指南》一1.5 ZooKeeper安装
- HBase常用Shell命令
- Phoenix连接安全模式下的HBase集群
- kerberos环境下spark消费kafka写入到Hbase
- HBase实践案例:车联网监控系统
- HBase性能调优(转)
- hive和hbase区别和联系
- hbase
- 大数据查询——HBase读写设计与实践--转
- HBase Filter及对应Shell--转
- 【HBase】HBase系列之HBase概述及环境搭建