《HBase权威指南》读书笔记10:第十章 集群监控

来源:互联网 发布:找店面的软件 编辑:程序博客网 时间:2024/06/10 12:49

监控框架

HBase使用Hadoop的监控框架,基于MetricsContext接口来处理监控数据点的生成。
可以用的实现列表
  • GangliaContext 用来推送到 Ganglia(似乎HBase对 ganglia的支持非常好) 
  • FileContext 把监控指标写入到磁盘上一个文件里面
  • TimeStampingFileContext 同上,但是为每个监控指标增加一个时间戳前缀
  • CompositeContext 可以同时指定多个上下文,比如可以同时存在 gangliaContext 和 FileContext
  • NullContext 就是关闭监控
  • NullContextWithUpdateThread  不生成任何监控指标,但是启动聚合统计线程。这种上下文在通过JMX检索监控指标时使用

附上:Ganglia 的介绍(适用于上几千台机器,如果没有就没有必要
Ganglia的强大在于:ganglia服务端能够通过一台客户端收集到同一个网段的所有客户端的数据,ganglia集群服务端能够通过一台服务端收集到它下属的所有客户端数据。这个体系设计表示一台服务器能够通过不同的分层能够管理上万台机器。这个功能是其他mrtg,nagios,cacti所不能比拟

完整的监控指标:
<context-name>.<record-name>.<metric-name>
监控指标有以下几种类型
  • 整形值(IV)
  • 长整形值(LV)
  • 速率(R) 一个代表速率的浮点值,可以是每秒操作数或者信息数。提供一个递增方法来追踪操作次数
  • 字符串(S)
  • 时间变化整形(TVI)
  • 时间变化长整形(TVL)
  • 时间变化率(TVR)
  • 持续时间变化率(PTVR)

master监控指标

  • cluster requests (R) 集群请求总数,累加所有region服务器统计的值
  • split time (PTVR) 重启后拆分WAL的时间
  • split size(PTVR) 拆分WAL的大小

region 监控指标

块缓存监控指标

block cache 就是块缓存,用来保存底层HFile从HDFS读取的存储块。
  • count(LV) 当前缓存中保存的块数目
  • size (LV) 占用的java堆空间大小
  • free (LV) 堆为缓存保留的可用空间
  • evicted (LV) 当前堆受限时将被移除的块数目
  • hit (LV) 缓存命中数 和 miss(LV) 缓存失效数 和 hit radio (LV) 命中率。所有的读操作都会尝试使用缓存,使用 setCacheBlocks() 仅影响块的保留策略

合并监控

  • compaction size (PTVR) 需要合并的文件总大小 和 compaction time (PTVR) 操作花费时间。注意只有当合并完成之后,这些值才会报告
  • [重要指标]compaction queue size (IV) 监测一个region服务器有多少个文件当前正在排队等待合并。这个值很重要,通常这个数值很小,在0到十几之间,当遇到IO问题的时候,会发现这个数值上升的很快,如果使用major合并也会导致该数字快速上升,此种情况是正常的

memstore 监控指标

  • memstore size MB(IV) 表示服务器上所有memstore总共占用堆的大小,即所有在线region的memstore总和
  • [重要指标]flush quene size (IV) 是指将要被刷写的region数量。如果IO出现问题,刷写队列大小会显著的上升
  • flush size 和 flush time 分别表示被刷写到磁盘上的 memstore 大小和本次刷写所占用的时间。并指只有完成后才看的到。

存储监控指标

  • store files 所有存储文件的数量
  • stores 服务器上所有region的存储文件的数目
  • store file index MB 所有存储文件的块索引和元数据索引的总和大小

IO监控指标

  • fs read latency 读延迟
  • fs write latency 写延迟
  • [重要指标] fs sync latency WAL同步到文件系统的延迟,该指标可以提供底层IO性能的相关信息

其他指标

  • read request count 读总操作  write request count 写总操作
  • request (R) 是自上次轮询之后目前每秒的请求数, regions 是目前region服务器在线的region数目

RPC监控指标

  • RPC Processing Time 服务器端执行 RPC 消耗的时间,统计所有RPC调用的时间,并取平均值
  • [重要指标] RPC Queue Time 因为RPC需要使用排队系统,可能造成操作系统到达时间和操作实际执行时间的延迟,即排队时间。可以反应服务器的负载

JVM监控指标

  • gc count 垃圾回收的次数  gc time 是上次轮询至今累计的垃圾回收占用时间
  • gc时间如果太久,并超过 zookeeper.session.timeout 配置的时间都会被任务是错误。由此会导致 朱丽叶暂停

Nagios

用JMXToolKit可以配合Nagios做监控。

思考:不过我觉得用metrics返回的json数据格式就可以直接让Nagios读取了,而且更透明更简单
1 0