`

[Binospace] HBase Metrics机制分析与架构总结

阅读更多

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的配置项。

 

 

 

文章的脚注信息由WordPress的wp-posturl插件自动生成

 

分享到:
评论

相关推荐

    hbase-metrics-1.4.3-API文档-中文版.zip

    赠送jar包:hbase-metrics-1.4.3.jar; 赠送原API文档:hbase-metrics-1.4.3-javadoc.jar; 赠送源代码:hbase-metrics-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-metrics-1.4.3.pom; 包含翻译后的API文档...

    hbase-metrics-api-1.4.3-API文档-中文版.zip

    赠送jar包:hbase-metrics-api-1.4.3.jar; 赠送原API文档:hbase-metrics-api-1.4.3-javadoc.jar; 赠送源代码:hbase-metrics-api-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-metrics-api-1.4.3.pom; ...

    hbase安装与hbase架构说明

    在HBase的架构中,Client是用户与系统交互的接口,它通过远程过程调用(RPC)机制与HMaster和HRegionServer通信。对于数据读写操作,Client直接与HRegionServer交互,而对于表管理和元数据操作,Client则与HMaster...

    使用kafka,spark,hbase开发日志分析系统

    本使用kafka,spark,hbase开发日志分析系统。 ![architecture](/docs/images/architecture.png "architecture") ### 软件模块 * Kafka:作为日志事件的消息系统,具有分布式,可分区,可冗余的消息服务功能。...

    HBase性能深度分析

    本文将深入探讨HBase的性能测试细节,重点剖析数据插入性能,并通过实证分析揭示其背后的机制与优化策略。 #### 数据插入性能测试设计 在评估HBase的实时数据插入性能时,测试场景设计至关重要。以随机值的Rowkey...

    基于数据冗余的HBase合并机制研究_熊安萍

    基于数据冗余的HBase合并机制研究_HBase列式数据库的所有操作均以追加数据的方式写入,导致其合并机制占用资源过多,影响系统读性能。

    hbase 资源合集 hbase 企业应用开发实战 权威指南 hbase 实战 hbase 应用架构

    《HBase应用架构》则侧重于HBase在大数据架构中的定位和作用,讨论了HBase与其他大数据组件(如Hadoop、Spark)的整合策略,以及如何构建和优化HBase为基础的大数据平台。 总的来说,这些书籍覆盖了HBase的各个方面...

    Hbase 组件 、架构

    总之,HBase的架构和组件设计体现了它作为一个分布式NoSQL数据库的优势和特点,通过合理的数据划分、负载均衡和故障转移机制,保证了数据存储的高可靠性和系统的高性能。HBase特别适用于处理大量数据的实时读写操作...

    \"HBase_介绍和HBase云存储\"分享总结

    在本分享总结中,我们将深入探讨“HBase_介绍”和“HBase云存储”的相关主题,这将涵盖HBase的基础知识、其架构原理、在云计算环境中的应用以及相关的源码解析。首先,我们从HBase的基本概念和功能入手。 HBase是一...

    HBase应用场景原理与基本架构共40页.pdf.zip

    这份"40页的HBase应用场景原理与基本架构"文档,很可能是对HBase的深度解析,包括其核心概念、工作原理、实际应用案例以及如何构建和扩展HBase集群。 首先,HBase的基本架构由Region Server、Master Server、...

    hbase应用架构指南

    Hbase全称为Hadoop Database,即Hbase是Hadoop的数据库,是一个分布式的存储系统。...本篇文章将重点介绍Hbase三个方面的内容:Hbase体系结构(架构)的介绍、Hbase shell的操作、Hbase的Java api的客户端操作

    HBase应用架构PDF版本

    《HBase应用架构》这本书由吉恩-马克·斯帕加里撰写,中文版由陈敏敏、夏锐和陈其生翻译,深入探讨了分布式大数据存储系统HBase的架构和应用。HBase是建立在Apache Hadoop之上的一款非关系型数据库,特别适合处理...

    HBase架构图

    **HBase架构图** HBase,全称是Apache HBase,是一个分布式的、面向列的开源数据库,基于Google的Bigtable论文设计,是Apache Hadoop项目的一部分。它为大规模数据集(数十亿行,数百万列)提供随机访问和强一致性...

    HBase源码分析与开发实战

    HBase源码分析与开发实战视频技术讲解高阶视频教程以及课件,内部讲解资料 内容非常详细 值得想要提高薪水的人去学习了解

    HBASE架构和原理解析

    ### HBASE架构与原理详解 #### 一、HBASE简介 HBase是一个开源的、分布式的、基于列存储的非关系型数据库系统。它最初源自Google的BigTable论文,并构建在Hadoop之上,利用Hadoop分布式文件系统(HDFS)作为其底层...

    Cassandra与HBase系统架构比对.pdf

    Cassandra与HBase系统架构比对 Cassandra与HBase是两种常用的NoSQL数据库管理系统,它们之间有着许多相似之处,但同时也存在着一些关键的差异。以下是对Cassandra与HBase系统架构的比对。 数据模型 Cassandra的...

    大数据书籍-Hbase架构设计(高清)

    《大数据书籍-Hbase架构设计》是一本专注于大数据领域中分布式数据库Hbase的深度解析书籍,适合对大数据技术尤其是Hbase感兴趣的程序员和数据分析师。书中详细阐述了Hbase的核心原理、生态环境以及在实际项目中的...

    藏经阁-云HBaseSQL及分析.pdf

    "藏经阁-云HBaseSQL及分析" 本资源摘要信息主要介绍了云HBaseSQL及分析相关知识点,包括Phoenix和Spark on HBase的应用。 HBase Native API是HBase提供的一种原生API,用于完成小数量简单分析和大数据量复杂分析。...

    Elasticsearch-HBase-sep机制

    总结,`SEP`机制通过`hbase-indexer`组件实现了HBase与Elasticsearch之间的数据实时同步,让用户能够在保持HBase强大存储能力的同时,享受到Elasticsearch的搜索与分析优势。在实际部署和使用过程中,需根据业务需求...

    分布式存储系统:HBase:HBase架构与原理.docx

    分布式存储系统:HBase:HBase架构与原理.docx

Global site tag (gtag.js) - Google Analytics