![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HBase
文章平均质量分 80
Master_Reid
这个作者很懒,什么都没留下…
展开
-
HBase source code. WALEdit
WALEdit 是HBase用于为transaction提供atomic时候所需要的类. 我们都知道在HBase将数据写入file system之前, 都需要将数据写入log, 叫write ahead log (WAL), 这样的好处是, 一旦region server在处理操作过程中宕机后, log可以分配给其它region servers, 然后可以根据log中记录进行repla原创 2015-01-27 13:09:56 · 1239 阅读 · 0 评论 -
HBase note. Data model
名词概念. Table: 一个Table由众多rows组成, 需要在建表时就决定 Row: 一个row包含row key还有一个或多个columns. Rows以row key按字母从小到大排序, 跟hdfs存储模型一致. Column: 一个column包含一个column family和一个qualifier, 用:隔开 Column Family: 一个columns的集合和其原创 2015-04-01 21:01:22 · 532 阅读 · 0 评论 -
HBase installation. HBase install (1.0.0)
因为需要研究源码的关系 个人不会从官网上直接下载安装文件 一般选择从git下来maven project, 然后对里面source code进行编译打包生成tar.gz 使用这个tar.gz作为安装文件 大概流程: git clone git://git.apache.org/hbase.git cd 到该目录下: mvn eclipse:eclipse (这是为了方便导入e原创 2015-03-07 09:36:10 · 583 阅读 · 0 评论 -
HBase source code. HRegion
配置: hbase.hregion.memstore.flush.size: 134217728 当Region的所有的memstore(意思是所有HStore的memstore的size的加总)的size超过参数设定的字节数时, 就会引发flush to disk的这个操作. 其中监听这个value是有另外一条线程在做. hbase.hregion.percolumnfamilyflush原创 2015-03-26 08:59:57 · 1185 阅读 · 0 评论 -
HBase source code. MemStore
MemStore通俗地来说, 就是HBase暂时存放数据的地方, 物理存放的地方其实就是内存. 每个HStore中只有一个MemStore. 当MemStore的size大于某个阈值, 就会将发生flush, flush会产生StoreFile, 所以一个HStore中可以有很多个StoreFiles. 还顺带一提的是, 每个HStore存储的是某table的某个column family的某原创 2015-01-28 16:43:14 · 1516 阅读 · 0 评论 -
HBase source code. HStore
配置 有部分配置参数已经在StoreFile中介绍过了 StoreFile, 都是跟compaction相关的参数, 重复的不作累赘. hbase.hstore.time.to.purge.deletes: 0 是一个延迟清除带有未来时间戳的delete markers的时间的参数. 如果不设置或设为0的话, 所有delete markers连同那些带有未来时间戳的都会在major co原创 2015-03-19 14:05:36 · 861 阅读 · 0 评论 -
HBase source code. StoreFile
先直接粗暴的介绍在configuration中关于StoreFile的设置, 下文表达的格式为:"属性名: 默认值", 从设置中, 我们大概也可以窥探处, StoreFile可能涉及的操作. hbase.hstore.compaction.min: 3 (以前名为: hbase.hstore.compactionThreshold) 如果HStore中的StoreFile的数目超过原创 2015-03-14 10:04:33 · 1924 阅读 · 0 评论 -
HBase source code. Cell
一个学期过去, 看了不少HBase的source code. 趁假期稍作总结, 加深理解. 看得source code版本是0.98.9 stable version中最新的了. (其实已经有0.99了, 估计还在测试...题外话, 实验室学长很厉害, 修了HBase的一个bug, 下个version的contributors应该有他, 羡慕!! 向他学习! 不会贴代码. 有原创 2015-01-24 17:55:22 · 2301 阅读 · 1 评论 -
HBase source code. KeyValue
上篇关于HBase source code的文章介绍了Cell. 现在介绍Cell的一个实现, KeyValule. 也可以说是关键的实现. 如果说Cell只是提供一个basic unit的框架的话, 那么KeyValue就是实打实的底层存储模型. (KeyValue实现有2744行, 不贴code了...) KeyValue的模型: , 更进一步的可以被进一步拆分:原创 2015-01-24 22:30:45 · 650 阅读 · 0 评论 -
HBase source code. MultiVersionConsistencyControl
MultiVersionConsistencyControl 简称 mvcc, 是HBase提供给transaction的一致性的一个方法 具体原理可以参见: mvcc wiki 简单来说, 每笔操作都被赋予一个number, 写操作被赋予writeNumber, 读操作被赋予readNumber. (这一版的mvcc是拿sequenceId当做writeNumber进行赋予, 跟我之前看0.原创 2015-01-25 15:39:43 · 715 阅读 · 0 评论 -
HBase note. Data Operations and Versions
目前只有四个操作: get: 拿特定row put: 插入多行新的rows或者更新已有的rows scan: 获取指定table的指定attributes的rows delete: 删除table中的某一行. HBase不会马上delete, 而是会在该行加入tombstones, 而这些rows会在major compaction中才被删除. 四个操作的操作对象都是Ta原创 2015-04-07 14:27:40 · 386 阅读 · 0 评论