HBase Metrics机制、架构

标签: hbase metrics 架构 | 发表时间:2013-11-13 11:49 | 作者:meiye
出处:http://www.iteye.com

HBase Metrics

HBase Metrics是一种监控信息实时收集机制。它负责收集的信息有:

  • 功能性信息(Compaction Queue、Store Files个数等)
  • JVM使用信息 (Heap Memory 的变化)
  • rpc访问信息

借助与Hadoop Metrics同样的方式,向Ganglia汇报。

Ganglia is a scalable distributed monitoring system for high performance computing systems such as clusters and Grids.

  • based on a hierarchical design targeted at federations of clusters
  • relies on a multicast-based listen/announce protocol to monitor state within clusters
  • uses a tree of point-to-point connections amongst representative cluster nodes to federate clusters and aggregate their state
  • XML for data representation
  • XDR for compact, portable data transport
  • RRDtool for data storage and visualization

Ganglia的架构图:

 

Ganglia相关特性:

  • gmond(Ganglia-monitor)负责收集本节点或者本集群内的的build-in Metrics.例如/proc下系统提供的资源使用状况。
  • Application-Level的信息可以发送给gmond,也可以直接发送给gmetad。

HBase Metrics的设计架构

HBase Metrics借助HadoopMetrics的实现,默认延续了Metrics 1的配置方式。

这里以RegionServer内RegionServerMetrics为例,阐述数据收集流程。

1)RegionServerMetrics根据classpath下conf/hadoop-metrics.properties的配置,创建一个Context实例

# Configuration of the  "hbase"  context  for  ganglia
# Pick one: Ganglia  3.0  (former) or Ganglia  3.1  (latter)
# hbase. class =org.apache.hadoop.metrics.ganglia.GangliaContext
  hbase. class =org.apache.hadoop.metrics.ganglia.GangliaContext31
  hbase.period= 10
  hbase.servers= 192.168 .1 .151 : 8650

在配置中,hbase.class指定的Context实例的实现是org.apache.hadoop.metrics.ganglia.GangliaContext31,类图的结构关系如下。

 

  • RegionServerMetrics实现了Updater接口,实现了doUpdater(MetricsContext)的方法。
  • RegionServerMetrics构造函数中,将自己注册到GangliaContext31。
  • 创建MetricsRecord,加载到GangliaContext31里。
  • 启动startMonitoring()过程。在AbstractMetricsContext里,是TimeTask来作为一个线程,周期性调用doUpdater().

2) HRegionServer周期性的执行doMetrics()方法。

该方法只更新在RegionServerMetrics定义的metrics对象,周期性更新的间隔是由”hbase.regionserver.msginterval”决定。

3)GangliaContext31获取Metrics的更新,然后发送给Ganglia。

该方法会将MetricsRecord发送给Ganglia的Gmond或者Gmetad。

注意:该过程的周期性间隔时间,是由conf/hadoop-metrics.properties文件的hbase.period的值来控制。

整体过程的框架图如下:

使用更加简洁的语言描述:

1)被监控的对象或者系统,实现Updater接口,注册到监控系统的Context中。

 

 
2)被监控的系统会根据自己的时间步调对需要采集的数据进行更新。
 
3)监控系统内置的TimeTask,则会根据自己的更新周期(period),调用Updater的接口,从被监控对象获取MetricsRecord,并按照Context的接口emitRecord的方法,将数据写入文件、第三方接收端、或者不处理(NullContextWithUpdateThread)。

Metrics机制特性总结

  • 降低HBase内核与Metrics模块的接口耦合性。支持多种Metrics机制的emitRecord方式。
  • 降低服务内部Metrics更新步调与监控数据收集的依赖性。更新数据是内存操作,而如果Fetch操作是网络操作,而且,是由其它线程独立来处理。
  • Push操作使用Non-blocking的Connectionless package delivery service(DatagramPacket)来实现。采集的信息很多,可以忽略网络的可靠性,从而使得Push操作不是瓶颈。

HBase Metrics机制配置

1、Metrics种类

种类 功能
hbase metrics 支持Hbase功能型参数的输出
jvm metrics 支持HMaster、Regionserver 的JVM虚拟机监控信息输出
rpc metrics 支持rpc监控信息输出

2、配置的方式

第一种配置方式:

在${HBASE_HOME}/conf/hadoop-properties中,取消相关注释项。例如我们以hbase metrics为例。

hbase.class=org.apache.hadoop.metrics.ganglia.GangliaContext31   #标识了hbase metrics采用哪一个上下文来发送数据
hbase.period=500 #见上图
hbase.servers=192.168.15.224:8649

这里的hbase.servers=192.168.15.224:8649标识了一个GMond的IP:PORT.

这里请注意两点:

1)保证所有需要发送Metrics的节点的Ganglia-monitor要存在。因为如果该Daemon Crash之后,即使Hbase相关的Metrics发送到其它节点的GMond,也无法显示。

2)注意在gmetad.conf中添加需要监控的节点。

data_source “my cluster” localhost 10.1.4.104 10.1.4.105 10.1.4.106 10.1.4.107 10.1.4.108 10.1.4.109 10.1.4.110 10.1.4.111 10.1.4.112  #这里默认使用8649端口

 

第二种配置方式:

配置Metrics输出成文件格式。同样在${HBASE_HOME}/conf/hadoop-properties中,取消相关注释项。例如我们以jvm metrics为例。

# Configuration of the “jvm” context for file
# jvm.class=org.apache.hadoop.hbase.metrics.file.TimeStampingFileContext
# jvm.fileName=/tmp/metrics_jvm.log  # 这样JVM监控信息相关数据会发送到本地文件。

自定义Metrics的方式

很多情况下,我们希望从HBase中获取我们更加感兴趣的值,或者我们把这些监控信息发送到其它节点上去。实际上,这些工作都可以借助原有的HBase Metrics的框架来实现。

整个过程大概需要这么几步:

1)在AbstractMetricsContext类的继承实现相关的doUpdater方法。

2)配置相关的hadoop-metrics.properties的配置项。



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [hbase metrics 架构] 推荐:

HBase Metrics机制、架构

- - 开源软件 - ITeye博客
HBase Metrics是一种监控信息实时收集机制. 功能性信息(Compaction Queue、Store Files个数等). JVM使用信息 (Heap Memory 的变化). 借助与Hadoop Metrics同样的方式,向Ganglia汇报. Ganglia的架构图:. Ganglia相关特性:.

ganglia收集hbase的metrics

- - CSDN博客云计算推荐文章
Ganglia 是 UC Berkeley 发起的一个开源监视项目,设计用于测量数以千计的节点. 每台计算机都运行一个收集和发送度量数据(如处理器速度、内存使用量等)的名为 gmond 的守护进程. 它将从操作系统和指定主机中收集. 接收所有度量数据的主机可以显示这些数据并且可以将这些数据的精简表单传递到层次结构中.

Hadoop Metrics体系架构分析

- - 非技术 - ITeye博客
原文: http://blog.csdn.net/chenpingbupt/article/details/7957396. 本文基于Hadoop 0.20.XX版本分析,和现在的Metrics2稍有不同. Hadoop Metrics用来统计集群运行数据,比如接口调用次数,响应时间,队列长度等等,现阶段(0.19版本)支持为数不多的几个层级的数据,分别是dfs,jvm,rpc,mepred等.

HBase 系统架构

- - 博客园_首页
HBase是Apache Hadoop的数据库,能够对大型数据提供随机、实时的读写访问. HBase的目标是存储并处理大型的数据. HBase是一个开源的,分布式的,多版本的,面向列的存储模型. 5 可在廉价PC Server搭建大规模结构化存储集群. HBase是Google BigTable的开源实现,其相互对应如下:.

HBASE数据架构

- - 数据库 - ITeye博客
关系数据库一般用B+树,HBASE用的是LSM树. MYSQL所用类B+树一般深度不超过3层,数据单独存放,在B+树的叶节点存储指向实际数据的指针,叶节点之间也相互关联,类似双向链表. 这种结构的特点是数据更新或写入导致数据页表分散,不利于顺序访问. LSM存储中,各个文件的结构类似于B+树,但是分多个存在内存或磁盘中,更新和写入变成了磁盘的顺序写,只在合并时去掉重复或过时的数据.

微服务架构--服务框架,metrics 和调用链数据

- - 行业应用 - ITeye博客
微服务化以后,为了让业务开发人员专注于业. 务逻辑实现,避免冗余和重复劳动,规范研发. 提升效率,必然要将一些公共关注点推到框架. 服务框架 ( 图 9) 主要封装公共关注点. 服务注册、发现、负载均衡和健康检查,. 假定采用进程内 LB 方案,那么服务自注. 册一般统一做在服务器端框架中,健康检.

SpringBoot-Metrics监控

- -
Metrics基本上是成熟公司里面必须做的一件事情,简单点来说就是对应用的监控,之前在一些技术不成熟的公司其实是不了解这种概念,因为业务跟技术是相关的. 当业务庞大起来,技术也会相对复杂起来,对这些复杂的系统进行监控就存在必要性了,特别是在soa化的系统中,完整一个软件的功能分布在各个系统中,针对这些功能进行监控就更必要了.

Solr与HBase架构设计 - aitanjupt

- - 博客园_首页
摘要:本篇是本人在做一个大数据项目. ,对于系统架构总结的一点想法,如何在保证存储量的情况下,又能保证数据的检索速度. 前提:      Solr、SolrCloud提供了一整套的数据检索方案,HBase提供了完善的大数据存储机制. 需求:      1、对于添加到HBase中的结构化数据,能够检索出来.

Hadoop Metrics体系分析之三:构建自己的Metrics

- - Taobao QA Team
大型分布式系统中需要metrics来了解系统状态已成为系统必需的功能之一. 其实测试系统甚至测试用例中也同样需要metrics. 通过这些指标我们可以了解测试的进度、状况、以及一些过程情况,比如性能指标和一些无法用是否判断数据. 下面我们就用一个简单的例子来看看如何使用hadoop metrics.

Eclipse:使用Metrics 测量复杂度

- - CSDN博客推荐文章
Metrics可以进行许多有用的代码度量,包括圈复杂度度量,它用于测量方法中惟一路径的数目. 在Eclipse中安装和使用Metrics步骤 . Elipse中安装Metrics插件 . 打开Help->Install new Software,点击Add,添加Repository. 选择相应的版本插件,继续随后的安装 .