背景:
在hbase应用中,如果使用C++来访问HBase,往往通过ThriftServer进行数据的读写,ThriftServer服务的状况直接影响了应用服务的体验。因此,在HBase ThriftServer之上的Metrics系统、以及实时监控系统,可以第一时间发现服务质量变化以及相关问题,同时,良好的监控系统,也有助于服务的完善。
ThriftServer实时监控系统的挑战
1)ThriftServer的服务具有分散性。我们一般为不同的应用启动多个ThriftServer,那么如果我们想多维度统计分析某个应用的统计状况,就会比较困难。例如:百川抓取平台,随机使用多个ThriftServer进行读写操作,单个ThriftServer的实时请求状况可以很容易分析,但是如果想看整个百川平台对于HBase集群的整体压力,就必须实时地从不同的ThriftServer中收集相关读写请求的数据,然后还得将分散到不同节点上的数据,进行聚合和汇总。显然,这样工作或者可以通过中心统一的key-value store,或者通过分布式流数据处理平台。
2)报警平台采用分散式还是中心式的问题。ThriftServer是一个个体,不同的应用会把多个ThriftServer汇总在一起。那么我们如何对ThriftServer出现的问题进行报警是最有效和最健壮的,成为了设计实时监控系统需要考虑的重要问题之一。
3) 如何让监控信息可靠、并且容忍短时间错误。实时监控系统有一个特点就是,它数据是根据时间为横坐标,因此数据量较大,在整个系统中,整个系统不应该因部分Metrics没有处理,而影响到整体的监控平台的处理效果。
4)需要满足动态扩展性。因为ThriftServer依赖的HBase是动态可扩展的,那么ThriftServer监控系统也应该满足一定的扩展性,并提供足够强劲的Availability。
ThriftServer实时监控系统的架构与设计
为了更好地解决ThriftServer实时监控系统带来的挑战,该设计使用了两大特色的设计:
1)分散式报警
2)使用OpenTSDB收集实时数据。
架构图如下。
具体的设计如下:
1)每个ThriftServer都会启动一个Metrics线程,提供ReadRequestNum、WriteRequestNum、errorRequestNum的统计与汇报。具体设计思想来源于HBase Metrics和HBase Metrics的相关参数解读。这对应于上图中的实时统计信息。
2)分散式报警。分散式报警比集中报警的粒度更细,而且嵌入到每个ThriftServer中,没有中心控制平台的单点故障的问题。对于嵌入ThriftServer代码内部的不灵活性,这里利用HBase Metrics提供的配置文件,可以灵活配置相关报警的选项和Threshold。
3)中心收集平台。这里选用OpenTSDB主要考虑如下几点:
- OpenTSDB可以实现分布式部署。
- 支持tag模式,可以实现不同的统计需求
- 支持Rate、Sum、Max、Min等统计,可以实现多个ThriftServer实时收集数据的汇总。
- 提供了GnuPlot的实时绘图功能。
- 数据容器依赖于Hbase,通过AsyncHbase实现数据的异步入库。
4)随机选择OpenTSDB Server,实现一定的load balance。并且需要实时监控Telnet连接的可用性,在连接错误时,实现OpenTSDB Server的动态切换。
本系列文章属于Binos_ICT在Binospace个人技术博客原创,原文链接为http://www.binospace.com/index.php/hbase-series-3-build-thriftserver-real-time-monitoring-system/,未经允许,不得在网上转载。
相关文章:
http://www.binospace.com/index.php/hbase-combat-series-1-compression-and-coding-techniques/
http://www.binospace.com/index.php/hbase-combat-series-2-region-monitoring/
From Binospace, post HBase实战系列3—搭建ThriftServer实时监控系统
文章的脚注信息由WordPress的wp-posturl插件自动生成
相关推荐
HBase伪分布式环境搭建及数据操作测试 本人成功搭建伪分布式的操作以及截图
《HBase实战》是一本基于经验提炼而成的指南,它教给读者如何运用HBase设计、搭建及运行大数据应用系统。全书共分为4个部分。前两个部分分别介绍了分布式系统和大规模数据处理的发展历史,讲解HBase的基本原理模式...
必须在 HBase 服务中配置 Thrift Server 角色以使用 Hue HBase Browser 应用程序”指出了一个关键的问题,即为了能够通过Hue UI界面顺利地浏览和操作HBase数据库,需要在HBase服务中设置Thrift Server角色。...
通过高效的数据存储和访问机制,HBase能够在海量数据中快速检索特定的信息,满足实时查询需求。此外,HBase还提供了丰富的接口支持和高度灵活的数据模型,使得开发者能够轻松地构建复杂的应用程序。
《HBase实战》是一本基于经验提炼而成的指南,它教给读者如何运用HBase设计、搭建及运行大数据应用系统。全书共分为4个部分。前两个部分分别介绍了分布式系统和大规模数据处理的发展历史,讲解HBase的基本原理模式...
《HBase实战》是一本基于经验提炼而成的指南,它教给读者如何运用HBase设计、搭建及运行大数据应用系统。全书共分为4个部分。前两个部分分别介绍了分布式系统和大规模数据处理的发展历史,讲解HBase的基本原理模式...
《HBase实战》是一本实践导向的书籍,通过实际的项目案例,展示了HBase在不同场景下的应用,如实时分析、日志处理、推荐系统等。读者可以从中学习到如何根据业务需求设计合适的HBase表结构,以及如何进行高效的查询...
HBase实战
HBase是Google Bigtable的开源实现,是Apache Hadoop生态系统中的一个关键组件。它为海量结构化数据提供随机、实时读写能力,支持多版本、列族和稀疏存储。HBase适合处理PB级别的数据,并能在大规模集群上运行。 二...
在大数据领域,HBase作为一款高扩展、高性能的非关系型数据库,被广泛应用于海量数据存储和实时查询。本文将深入解析HBase的基础概念、需求调研、RowKey设计以及实战案例,帮助读者更好地理解和运用HBase。 首先,...
**HBase实战** HBase,全称为Apache HBase,是一款高度可扩展的开源数据库,它构建于Hadoop分布式文件系统(HDFS)之上,专为处理海量数据而设计。HBase是NoSQL数据库的一种,主要面向列式存储,提供实时读写能力,...
在本实战中,我们将深入探讨如何利用JMX对HBase和Hadoop进行监控,以确保系统的稳定性和性能。 首先,我们需要理解HBase。HBase是一个基于Google的Bigtable设计的开源NoSQL数据库,它运行在Hadoop之上,提供高度可...
hbase实战,hadoop的数据库管理软件
HBase实战(中文扫描版)
- **第7章:构建实际应用**:通过一系列具体的案例研究,展示如何使用HBase构建复杂的应用程序,涵盖了从需求分析到系统设计、实现再到测试和部署的全过程。 #### 三、HBase核心技术详解 **1. 数据存储模型**:...
HBase实战_Cn.pdf 完整版