- 博客(14)
- 收藏
- 关注
原创 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
1792
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
1335
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
376
原创 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
168
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
238
HBase大集群
为什么HBase没有大集群?因为如果一个HBase集群很大,有很多应用在上面,这些应用的应用场景可能不同,如有些是读,有些写,有些写的多,有些读的多,有些很重要,有些不重要,如果不加以区分,那么这个集群就无法运行下去。如何做?对多租户(Multi-tenancy)的这种情况,对资源进行隔离显得尤为重要,比如可以用虚拟的group来代表若干台RS,将这个虚拟的Group给某个应用,不同的...
2013-01-28 14:02:08
127
HBase MVCC基本原理
HBase MVCC(Multi Version Consistencey Control)mvcc多版本并发控制,是相对锁来说对并发处理的一种方法,在HBase中,当writernumber > reade number表明这个memstore在写,如此时读需要等待。1. MVCC初始化在HRegion 的initializeRegionInternals方...
2012-11-28 16:21:39
395
HDFS append and Replication
如果一个文件正在写,那么NN不会执行Replication,因为此时file处于under_construction。但是如果HDFS 在做某个block的Replication时会读这个block,且正读了一半block,有client过来append这个文件会怎么样???...
2012-11-05 17:12:40
165
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
175
原创 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
226
原创 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
410
原创 zookeeper中任何节点的写都会影响到整体的读
zookeeper中,任何节点的写都会影响到整体的读。这个怎么理解呢,任何一个节点的更改,都会block各个follow的queue,只有此次两阶级提交完成之后,follow收到leader的commit后,这台机器上的后继的操作才能进行。情景假设leader:Afollow: B,Cclient向及提交一个更改请求,后面两阶段提交(leader发propose, 等待fo...
2012-10-08 17:51:00
430
HBase keyvalue大小导致OOM
在HBase上传时,会通过配置参数hbase.client.keyvalue.maxsize来检查是否符合要求,如果没有设置此值,那么HBase不会限制大小 ,如果是这样,可以会在compact时候一次加载导致OOM。可能的解决办法是设置一个合适的值给hbase.client.keyvalue.maxsize。...
2012-09-27 12:11:00
1055
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
569
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人