2019独角兽企业重金招聘Python工程师标准>>>

公司有自己的监控系统,我们所要做的就是将 HBase 中我们关心的指标项发送到监控系统去,问题就转换为我们开发,采集并返回哪些 HBase 集群监控指标项。

HBase 集群监控指标

采集的监控数据主要包括以下几个方面:某台机器 OS 层面上的数据,例如 CPU、内存、磁盘、网络、load、网络流量等;某台 regionserver(或master)机器 jvm 的状态,例如关于线程的信息,GC 的次数和时间,内存使用状况,以及 ERROR、WARN、Fatal 事件出现的次数;regionserver(或 master)进程中的统计信息。

可以通过以下地址获取 HBase 提供的 JMX 信息的 web 页面

http://your_master:60010/jmx //所有的bean

OS 监控数据JMX web 页面的数据格式是json格式,信息很多!

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 信息,欢迎点击链接加入群【Java并发编程交流组】:https://jq.qq.com/?_wv=1027&k=5jLmydM

{
"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
}

从全部的 JSON 值中你会看到很多种 MemoryPool 值,比如 Par Eden Space 、CMS Perm Gen、Par Survivor Space、CMS Old Gen、Code Cache ,按需获取吧。MEMORYPOOL

总结

任何一个服务的监控系统都是一个不断迭代,不断优化的过程,不可能一开始就做到最好。监控总是比问题发生来的更早一些,而每一次出问题,又进一步加强相应方面的监控,我们需要让监控系统从出问题时才报警到可能出现问题时就预警逐渐过渡,最终让监控系统成为我们保证系统稳定性的一个有力工具。

最后

监控指标有很多,但请按需获取 !

转载于:https://my.oschina.net/u/3714311/blog/1563117

如何构建 HBase 集群监控系统?相关推荐

  1. kafka 集群_Kafka集群监控系统Kafka Eagle部署与体验

    Kafka Eagle是一款开源的Kafka集群监控系统 能够实现broker级常见的JMX监控: 能对consumer消费进度进行监控: 能在页面上直接对多个集群进行管理: 安装方式简单,二进制包解 ...

  2. hbase集群 数据写入_一种构建HBase集群全文索引方法,数据读取方法以及数据写入方法与流程...

    本发明涉及HBase集群领域,尤其涉及一种构建HBase集群全文索引方法,数据读取方法以及数据写入方法. 背景技术: 随着云计算技术的不断发展,云计算技术不断落地成为支撑各行业信息技术发展的重要支柱. ...

  3. 基于开源软件构建高性能集群NAS系统

    大数据时代的到来已经不可阻挡,面对数据的爆炸式增长,尤其是半结构化数据和非结构化数据,NoSQL存储系统和分布式文件系统成为了技术浪潮,得到了长足的发展.非结构化数据目前呈现更加快速的增长趋势,IDC ...

  4. vivo 容器集群监控系统架构与实践

    vivo 互联网服务器团队-YuanPeng 一.概述 从容器技术的推广以及 Kubernetes成为容器调度管理领域的事实标准开始,云原生的理念和技术架构体系逐渐在生产环境中得到了越来越广泛的应用实 ...

  5. Ganglia集群监控系统搭建

    前段时间自己用两台工作站搭建了一个MPI的运行环境,那如何直观的看到每个节点的负载情况呢,于是就想到了用Ganglia搭建一个集群检测系统,相对比较简单,下面详细介绍一下过程 1.Ganglia概述 ...

  6. 构建一套高逼格 Nginx 集群监控系统!

    点击关注公众号,实用技术文章及时了解 搭建了Nginx集群后,需要继续深入研究的就是日常Nginx监控. Nginx如何监控?相信百度就可以找到:nginx-status 通过Nginx-status ...

  7. 集群监控系统的设计方案

    2019独角兽企业重金招聘Python工程师标准>>> 背景 一个项目发展了一段时间以后,总会分成为数众多的子应用,各自以集群的形式部署在不同的服务器上.当部署的应用多了以后,整个集 ...

  8. docker swarm集群监控方案cAdvisor+InfluxDB+Grafana实战

    docker swarm集群的监控方案很多,cAdvisor+InfluxDB+Grafana方案功能强大灵活.最重要的是这个方案开源.免费.易用,是不花钱版监控方案.参考文档:https://bot ...

  9. 用 Ganglia 监控基于 Biginsights 的 HBase 集群性能

    2019独角兽企业重金招聘Python工程师标准>>> BigInsights 和 HBase 简介 InfoSphere BigInsights 是 IBM 集成和开发的一个大数据 ...

最新文章

  1. 人类或起源于古菌?真假?
  2. Vim的行号、语法显示等设置(.vimrc文件的配置)以及乱码解决
  3. Python小技巧——快速给大量文件命名
  4. boost::log::expressions::has_attr用法的测试程序
  5. 洛谷 P1506 拯救oibh总部-dfs染色法
  6. java 装配_Spring 通过Java代码装配bean
  7. magic_quotes_gpc与magic_quotes_runtime区别
  8. 微信成为开发者_如何成为开发者
  9. Android应用插件式开发解决方法
  10. airplay服务器linux,在Linux实现airplay
  11. Hive 窗口函数详解
  12. 打开图片默认是WPS图片,还原成win7自带的图片查看方式
  13. android expandablelistview横向,Android 的ExpandableListView使用总结--二级展开树结构
  14. javascript计算两个时间差
  15. 使用MetaHuman Creator 塑造你心中的人物
  16. Cisco Packet Tracer 思科模拟器三层交换机配置
  17. 用贾樟柯访谈评《疯狂的程序员》
  18. pytorch中tensor转numpy
  19. AI工具是帮手还是助手:
  20. 快速傅里叶变换 (FFT)基础

热门文章

  1. 爱站CMS综合管理系统源码php版
  2. 帝国cms模板仿古筝培训网站
  3. Discuz模板 轻社区Qing_freefresh 完整版
  4. aba问题mysql_面试题总结:可能是全网最好的MySQL重要知识点
  5. laravel mysql注入_PHP 项目中单独使用 Laravel Eloquent 查询语句来避免 SQL 注入
  6. disabled运用;div,li元素禁用点击事件;防止a标签打开url;禁用click事件,删除onclick
  7. Notebook响应式扁平化后台UI框架模板
  8. typecho 邮件mail插件 LoveKKCommentModify 美化版
  9. jQuery倒计时(仿团购)
  10. oracle重置sys密码