HBase
文章平均质量分 67
brianf
这个作者很懒,什么都没留下…
展开
-
HBase MVCC基本原理
HBase MVCC(Multi Version Consistencey Control)mvcc多版本并发控制,是相对锁来说对并发处理的一种方法,在HBase中,当writernumber > reade number表明这个memstore在写,如此时读需要等待。1. MVCC初始化在HRegion 的initializeRegionInternals方...2012-11-28 16:21:39 · 349 阅读 · 0 评论 -
HBase BlockCache 代码分析
1. Cache 读写调用逻辑:hmaster.handleCreateTable->HRegion.createHRegion-> HRegion. initialize->initializeRegionInternals->instantiateHStore->Store.Store->new CacheConfig(conf, family)-> CacheConfig.ins...原创 2013-02-04 22:08:04 · 145 阅读 · 0 评论 -
HBase replication 代码分析
随着HBase的大规模应用,HBase的容灾显得特别的重要。本文主要从代码层面分析HBase replication (基于HBase0.94.3)分为正常replication处理逻辑和RS Fail两块。[b]1.正常replication处理逻辑[/b]首先是HLog的rollwrite方法,调用prelogRoll, 在ZK上加上新的Hlog...2013-01-28 17:23:52 · 187 阅读 · 0 评论 -
HBase大集群
为什么HBase没有大集群?因为如果一个HBase集群很大,有很多应用在上面,这些应用的应用场景可能不同,如有些是读,有些写,有些写的多,有些读的多,有些很重要,有些不重要,如果不加以区分,那么这个集群就无法运行下去。如何做?对多租户(Multi-tenancy)的这种情况,对资源进行隔离显得尤为重要,比如可以用虚拟的group来代表若干台RS,将这个虚拟的Group给某个应用,不同的...2013-01-28 14:02:08 · 103 阅读 · 0 评论 -
flush后split和compact后split
什么时候split?当某store所有文件总大小大于某个值时split,注意,并不是判断某个storefile大小大于某个值。什么时候compact?检查整个region内所有store中任一个store 的总storefile是不是太多了(大于hbase.hstore.blockingStoreFiles(7)),太多了则会先进行compact。flush会遍历这个regio...2012-10-11 17:51:29 · 152 阅读 · 0 评论 -
HBase rpc调用
HBase rpc 0.94中例如在client put数据时,会调用htable的flushCommits,再调HConnectionImplementationr的processBatch,再调processBatchCallback中,在这里异步调用线程,并使用future取得结果,最终执行的是call方法。[code="java"] // step 2: ...原创 2012-10-10 18:47:02 · 190 阅读 · 0 评论 -
HBase什么时候做minor major compact
我们都知道compact分为两类,一类叫Minor compact ,一类叫Major compact,两者有什么区别呢?两者的区别在于:Minor compact只是进行文件merge操作,而Major compact除了做文件Merge操作,还会将其中的delete项删除。[quote]There are two types of compactions: minor and ma...原创 2012-10-09 18:11:08 · 382 阅读 · 0 评论 -
HBase keyvalue大小导致OOM
在HBase上传时,会通过配置参数hbase.client.keyvalue.maxsize来检查是否符合要求,如果没有设置此值,那么HBase不会限制大小 ,如果是这样,可以会在compact时候一次加载导致OOM。可能的解决办法是设置一个合适的值给hbase.client.keyvalue.maxsize。...2012-09-27 12:11:00 · 1015 阅读 · 0 评论 -
HBase Put及flush
1. Put及flush a. Client提交put,若设置autoflush=false,则直接提交到regionserver,若为true,则等到2M或者执行hbase.flushcommits()提交给rs.b. Put到Regionserver层次,先判断则这台regionserver的 所有memstore的总占用内存是否大于最大值内存(heap...2012-09-21 10:50:26 · 536 阅读 · 0 评论 -
HBase中Lease创建、失效、及常见问题
HBase通过租约来控制每个scanner的操作时间。[b]1. 租约线程初始化:[/b]HRegionServer的run方法会调用一次preRegistrationInitialization方法,再调用initializeThreads时,会new lease[code="java"] this.leases = new Leases((int) conf.ge...原创 2013-11-07 11:52:42 · 1689 阅读 · 0 评论 -
HBase HFile和Hlog的cleaner执行流程和配置项
HFile和Hlog是HBase中两大文件存在格式,HFile用于存储数据,Hlog用于保证数据写入HFile中。两者都有自己的cleaner逻辑。HFileCleaner和LogCleaner都是继承CleanerChore类public class HFileCleaner extends CleanerChorepublic class LogCleaner extends Cl...2013-06-09 14:50:56 · 1238 阅读 · 0 评论 -
HLog代码分析及与HBase replication延时
在分享replication时,有同事提出replication延时怎么样,(基于0.94.3)本文主要代码分析一下Hlog生成及对relication的影响。具体replication请参考[url]http://brianf.iteye.com/blog/1776936[/url]首先分析hlog什么时候产生:在生成HLog对象时,会调用HLog的rollWriter(...2013-02-19 19:51:19 · 332 阅读 · 0 评论