HBase实战系列2—Region监控

六月 9th, 2013 by klose | 4 Comments | Filed in 互联网应用, 海量数据存储与处理

1、背景 随着大数据表格应用的驱动,我们的HBase集群越来越大,然而由于机器、网络以及HBase内部的一些不确定性的bug,使得系统面临着一些不确定性的故障。 因此,HBase上有很多的Region组成,需要控制每个表格的Region的状态。 分析: 1)实时掌控Region的状态。应用的每次访问要直接与HBase某个Region关联,需要探测Table上Region是否处于可用状态。 2)Region的读写与底层的HDFS的状态相互关联。这种关联决定了通过Region的读写状况的监控,也可以反映HDFS的状况。 2、实战工具  org.apache.hadoop.hbase.tool.Canary 监控Region的可用和读写状况。==>对应分析中前两个问题。 使用方法: Usage: bin/hbase org.apache.hadoop.hbase.tool.Canary [opts] [table 1 [table 2...]] where [opts] are: -help          Show this help

Tags: , ,

HBase Metrics参数详解

四月 2nd, 2013 by klose | 5 Comments | Filed in 互联网应用, 海量数据存储与处理

本研究针对HBase 0.94.* 及以上版本的系统。 RegionServer 本目标主要集中分析在RegionServer提供的相关Metrics接口。在0.94新版本中,Metrics包括:RegionServerMetrics、JvmMetrics、以及RegionServerDynamicMetrics。下面分别进行介绍。 1、RegionServerMetrics 这是延续了以前版本的Metrics。它主要是以RegionServer为单位的基本功能的监控信息的收集,主要包括: 1)通用信息的收集。例如RS内store个数、storefiles的个数等。 2)与RS整体读写性能指标相关的参数。例如Cacheblock相关的信息、RS内读写请求个数、写操作相关的性能、以及读操作相关的性能。 3)功能性调整的参数个数。如Compaction、Split等。 下面细化这些参数的含义。(ps:参数名省略了前两位的hbase.regionserver.,例如如果blockCacheCount,那么Metrics上实际名字是hbase.regi

Tags: , ,

OpenTSDB的设计之道

二月 26th, 2013 by klose | 2 Comments | Filed in 互联网应用, 海量数据存储与处理

OpenTSDB是一个架构在Hbase系统之上的实时监控信息收集和展示平台。 它在海量数据的压力下,仍然保证了存储的效率,那么它背后有什么值得借鉴的地方呢? 1)使用AsyncHbase而非HBase自带的HTable。使用线程安全、非阻塞、异步、多线程并发的HBase API,在高并发和高吞吐时,可以获得更好的效果。建议在使用AsyncHBase​时,在CPU core有保证的前提下,可以设置16或者24。 2)采用固定长度的Rowkey,让Rowkey包含尽可能多的检索信息。这一点的话,OpenTSDB存储的数据要包含大量的metrics和tag信息,这些信息的长度是变长的,因此,在实现上设置了一个表格uid-tsdb存储这些信息,作为一个全局唯一的编号,并把编号与TimeStamp合并作为Rowkey。   3)每一行要存储尽可能多的信息,这一点在OpenTSDB被发挥到了极致。例如,把某个时间段的分散采集的数据合

Tags: , ,

HBase监控之Region空洞

二月 20th, 2013 by klose | No Comments | Filed in 互联网应用, 海量数据存储与处理

Region是HBase的资源管理单位,在Region的生命周期内,一个Region迁移会发生在如下的情况下: 1)HMaster的Load Balance,造成部分Region在RS之间迁移。默认使用了 org.apache.hadoop.hbase.master.DefaultLoadBalancer,仅仅考虑RS上Region个数的分配的均衡性。 2)Region Split过程。这部分内容可以参考 http://blog.sina.com.cn/s/blog_4a1f59bf01018tu4.html 3) RS Offline过程-〉LOG Split过程-〉Region迁移。 在如上的过程中都会涉及到Region的迁移,那么Region的迁移又要经过哪些过程呢? 为了节省文章空间,我们以HMaster的Load Balancer为例来说明。 1)HMaster启动LoadBalancer线程。balancer的period由hbase.balancer.period控制,默认是300s。 5ffdb14913a26f12ca7aa24c75a586ab000 2)关闭了BalancerSwitch、有Region处于In-Transition状

Tags: , ,