![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hbase
uestzengting
这个作者很懒,什么都没留下…
展开
-
Hbase region compact源代码阅读笔记
边缘代码略过,核心代码笔记 客户端 1.table_jsp._jspService(HttpServletRequest request, HttpServletResponse response)调用客户端HBaseAdmin的compact方法来压缩region//调用HBaseAdmin的功能来完成Region的压缩 HBaseAdmin hbadmin = ...2011-10-08 19:49:05 · 94 阅读 · 0 评论 -
Hbase的Region Compact算法实现分析
Hbase的Region Compact算法属于一种多路归并的外排算法。这种算法的特点是,待排序文件本身是有序的,同时打开这些文件,顺序遍历并对比它们的首条数据,最后合并输出为一个文件,多个文件遍历时的首条数据用内存堆进行内排。Hbase在实现该算法的过程中重要的是下面这五个类。1.org.apache.hadoop.hbase.regionserver.Store2.org.ap...2011-12-08 15:06:14 · 169 阅读 · 0 评论 -
Hbase region split源代码阅读笔记
客户端1. HbaseAdmin.split(final byte [] tableNameOrRegionName, final byte [] splitPoint)这个方法首先判断参数是regionName还是tableName;如果是regionName则只分裂该region,如果是tableName则分裂该表下的所有regionif (isRegionN...2011-12-07 00:03:46 · 96 阅读 · 0 评论 -
Hbase bulkload源代码阅读笔记
1.LoadIncrementalHFiles.doBulkLoad(Path hfofDir, HTable table)首先用discoverLoadQueue方法扫描出hfofDir下有哪些fhile文件,再循环调用tryLoad方法把每个文件load进去,这是一个串行的过程。 Deque queue = null; queue = discoverL...2011-12-06 00:21:37 · 682 阅读 · 0 评论 -
HBase HMerge源代码阅读和修改
随着Hbase里删除的进行,有些Region的数据会越来越少,而HBase不会主动去回收这些Region,因此会造成Region越来越多。HBase里提供了一个工具类HMerge,直接拿过来用却并不能运行,按照自已对HBase的理解对HMerge稍做修改,使其可以运行。运行时不需要Disable表,但需要注意的是在运行时如果同时往该表里put数据,可能会有问题,改后的代码如下:/** ...原创 2011-11-14 19:50:11 · 107 阅读 · 0 评论 -
HBase bulkload的一个bug定位
在HBase bulkload过程中,如果rowkey和version都一致,无法取得最新导入的数据。问题定位:在HBase里,如果两个HFile中都有相同rowkey和version的数据,是靠HFile的fileinfo里的MAX_SEQ_ID_KEY来判断哪个文件是最新,MAX_SEQ_ID_KEY越大的文件越新。1.通过flush写的HFile文件有往fileinf...2011-12-30 11:13:12 · 142 阅读 · 0 评论 -
HBase 不常用命令列表
1.查看hfile的内容 hbase org.apache.hadoop.hbase.io.hfile.HFileusage: HFile [-a] [-f ] [-k] [-m] [-p] [-r ] [-v] -a,--checkfamily Enable family check -f,--file File to scan. Pass full-path;...原创 2011-12-30 10:38:37 · 81 阅读 · 0 评论 -
Hbase HLog源代码阅读笔记
HLog当客户端往RegionServer上提交了一个更新操作后,会调用HLog的append方法往WAL上写一个节点,入口方法就是append1.append public void append(HRegionInfo info, byte [] tableName, WALEdit edits, final long now) throws IOExceptio...原创 2011-11-03 18:01:51 · 136 阅读 · 0 评论 -
Hbase WAL原理学习
1.概述客户端往RegionServer端提交数据的时候,会写WAL日志,只有当WAL日志写成功以后,客户端才会被告诉提交数据成功,如果写WAL失败会告知客户端提交失败,换句话说这其实是一个数据落地的过程。在一个RegionServer上的所有的Region都共享一个HLog,一次数据的提交是先写WAL,再写memstore,示意图如下[img]http://dl.iteye.com/up...2011-10-31 20:19:15 · 148 阅读 · 0 评论 -
Hbase put过程源代码阅读笔记
客户端1.HTable.put for (Put put : puts) { validatePut(put);//验证Put有效,主要是判断kv的长度 writeBuffer.add(put);//写入缓存 currentWriteBufferSize += put.heapSize();//计算缓存容量 } if (a...原创 2011-10-27 10:22:39 · 140 阅读 · 0 评论 -
hbase关于bloom filter使用
1.Bloomfilter的原理? 可参考 http://hi.baidu.com/yizhizaitaobi/blog/item/cc1290a0a0cd69974610646f.html 2.Bloomfilter在HBase中的作用? HBase利用Bloomfilter来提高随机读(Get)的性能,对于顺序读(Scan)而言,设置Bloomfilter是没有作用的(0.92以后,如果设置了...原创 2013-08-14 11:36:53 · 235 阅读 · 0 评论