
HBase
文章平均质量分 78
MrTitan
这个作者很懒,什么都没留下…
展开
-
HBase 如何Debug region
要想很好的理解HBase的代码,Debug Hbase的源码是最简单的方式,但很可惜的是HBase不能在Windows上运行(除非cygwin),即使用cygwin配置起来也很麻烦。而且即使用cygwin,HBase中最核心最关键的代码region部分也很难debug。不过,本文提供的方法可以轻松在本地创建region对象,然后就可以直接调用方法进行debug啦。首先说下原理:原创 2012-11-30 11:17:22 · 2391 阅读 · 1 评论 -
HBase 大吞吐系统HTablePool和HTable使用技巧
这2周主要将项目中写hbase的模块中原来的异步hbaseclient改写成了使用hbase原生的HTable对象。大概总结下改写过程中和hj,xingchao发现的问题和解决方法。 1.HTablePool的基本使用方式:由于HTable对象不是线程安全的,因此HBase提供HTablePool来支持多线程写入hbase,多线程同时从HTablePool中取出HTable并写入是安全原创 2013-05-07 23:19:00 · 10470 阅读 · 1 评论 -
实时系统HBase读写优化--大量写入无障碍
在使用hbase过程中发现在写入hbase的数据量很大时,经常发生写不进去的情况。而我们基于hbase的应用是对实时性要求很高的,一旦hbase不能读写则会大大影响系统的使用。下面将记录hbase写优化的过程。1.禁止Major Compaction在hbase进行Major Compaction时,该region将合并所有的storefile,因此整个region都不可读,所有对原创 2013-03-11 18:14:00 · 19314 阅读 · 6 评论 -
如何设置hadoop hbase的Log Appender
要想很好的监控hadoop集群的状态,hadoop打印的log是很重要的。我们的思路是使用部门研发的log appender将hadoop的数据append到我们自己的central logging数据库中(其实就是存在hbase中)。说起来简单,实际操作起来也花了一天多的时间,下面记录下整个过程。首先要明确hadoop使用的log机制。hadoop使用了slf4j,log原创 2013-02-06 20:02:15 · 5416 阅读 · 2 评论 -
从MergeSort看HBase 二
接着前一篇 从MergeSort看HBase 一:http://blog.youkuaiyun.com/mrtitan/article/details/8457080 在hbase中scan是最核心的算法,从直接的读操作get,scan到一些hbase的大操作compact、split、flush都是使用各种各样的scanner实现的,可以说region的一切读操作都是scan。scan的实现可以参考原创 2013-01-15 23:22:17 · 1665 阅读 · 0 评论 -
如何使用mapred export import删除hbase表数据
背景:hbase的删除功能比较弱,只能单行删除,而且必须指定rowkey。遇到问题:今天遇到一个需求,用户导入了大量错误的数据,数据的rowkey开头都是110102,需要删除这些垃圾记录,用hbase shell删除实在不科学。解决方案:用hbase的mapreduce工具进行export和import,在export过程中filter掉不需要的数据。首先原创 2013-01-11 16:37:14 · 2682 阅读 · 0 评论 -
hbase scan和bloom filter的讨论
在工作中大家对hbase的bloom filter是否能作用于scan展开讨论。在没讨论前,我还真没想过这个问题,想当然的以为bloom filter肯定可以为scan剔除掉不需要的hfile。但Google了下才发现事实不是如此!首先,学习了以下2篇文章:hbase对bf的理解和使用http://zjushch.iteye.com/blog/1530143hbase的主要原创 2013-01-09 21:13:18 · 7608 阅读 · 1 评论 -
从MergeSort看HBase--一
最近在研究HBase,发现很多归并排序的影子,很有意思的是这个在数据结构教材里一笔带过的算法却在分布式计算领域经常出现。再一次证明了我们的教材也许已经很落伍了。。。为什么会用到归并排序纳?我们知道分布式系统中排序是基础,数据很容易在单台机器(或者节点、模块)中做到有序,但分布式环境需要在整个集群中达到有序。因此自然牵涉到把多个有序列合并为一个有序列的过程,这个过程就是mergesort登场的时原创 2013-01-01 13:39:54 · 1981 阅读 · 0 评论 -
修改HBase表的TTL
工作中需要修改已经使用表的TTL,遇到了一些问题,做下记录首先,进入hbase shell1.disable表是必须的disable 'table'2.输入alter 'table',shell弹出一堆提示Here is some help for this command:Alter column family schema; pass table name and原创 2012-12-13 18:02:32 · 19368 阅读 · 1 评论 -
HBase 0.92.1 Scan 源码详细分析
从这篇文章开始终于要讨论比较正常版本的hbase了---0.92.1~~ Scan是hbase提供的非常重要的功能之一,我们的hbase分析系列就从这儿开始吧。 首先,我们有一些background的知识需要了解:1.HBase是如何区分不同记录的,大家可以参考http://punishzhou.iteye.com/blog/1266341,讲的比较详细2.Region,原创 2012-12-12 23:36:45 · 4911 阅读 · 0 评论 -
HBase SplitSize 到底是多少
大家都知道HBase的一个重要特性就是split,split通常情况下是自动执行的,而trigger条件就是region的size到达一定大小。那么到底这个大小是多少纳? 笔者google了一些文章,不少文章说是256M,但也有一些说是1G。那么到底是多少纳? HBase是支持设置Table级别的splitsize的,HTableDescriptor类里读取FileSize的代码如原创 2012-11-23 22:08:27 · 2298 阅读 · 0 评论 -
HBase 0.1.0版本源码分析--Master启动流程
接触HBase2个月了,公司使用了0.92版本,大概浏览过代码,对于我等菜鸟来说过于复杂,入门甚难,故找来最原始的版本来看看,顺便瞻仰下当年大神的原迹。 原始版本可以在github上找到,在以后的几篇文章中笔者也将仔细的分析HBase中几个比较重要类的逻辑。 Master初始化1.查看是hdfs文件系统,如果是则等待hdfs退出safemode this.fs = File原创 2012-11-22 23:30:03 · 2112 阅读 · 0 评论 -
HBase 0.1.0 Flush流程源码分析
这篇文章将会分析和总结Flush流程的实现。Flush是LSM-Tree重要的实现步骤,对应理解hbase非常关键。简单来说,flush就是把内存中的数据flush到磁盘上,那么具体是怎么实现的纳?首先,regionserver在适当的时机调用region.flushcache。步骤如下:lock.readLock().lock(); //原创 2012-12-04 22:11:11 · 1341 阅读 · 0 评论 -
HBase 0.1.0 Put流程源码分析
put的过程相对比较简单,因为根据LSM-Tree的理论,写入操作会写入到内存中,然后再batch的写入磁盘。HBase的实现也是如此。首先,从客户端的batch操作中提取出所有的put操作并放在一个sortedmap中(localput):Text row = b.getRow(); long lockid = obtainRowLock(row); lon原创 2012-12-02 23:52:22 · 1255 阅读 · 0 评论 -
HBase 0.1.0 数据存储基本结构详解
首先,还是拿出一张Hbase自带的结构图:HBase采用了LSM-Tree来解决数据存储问题。其中有几个核心数据结构:HRegion:一个独立的数据存储单元。存储从startkey-endkey的所有数据。HRegion中会根据每个columnfamily生成一个HStore对象HStore:存储了hbase中每个columnfamily的数据记录。数据结构上主要包括一个Memst原创 2012-12-02 18:26:26 · 1527 阅读 · 0 评论 -
HBase 0.1.0 Get流程源码分析
在debug region一文中http://blog.youkuaiyun.com/mrtitan/article/details/8209994已经说到Hbase中每个region都是个独立的个体,本文会分析一次get操作在region层面是如何实现的。HBase系统架构:client的一次get操作到了regionserver后,regionserver会根据rowkey的范围选择对应的re原创 2012-12-02 18:55:58 · 1557 阅读 · 0 评论 -
hadoop hbase metric名全解释
和同事花了1天时间把hadoop和hbase的所有metric全部解释了一遍,记录一下:系统参数监控metricsload_one 每分钟的系统平均负载load_fifteen 每15分钟的系统平均负载load_five 每5分钟的系统平均负载boottime 系统原创 2013-05-28 15:29:49 · 11594 阅读 · 6 评论