HBASE
文章平均质量分 88
隔壁老杨hongs
1949年我被捕了,第一天我没招,第二天我还是没招,第三天敌人用美人计我招了,第四天我还想招,解放了.
展开
-
hbase0.96.1 hmaster启动过程分析
HBASE HMASTER启动分析Hbase debug配置:找到hbase这个shell脚本文件,在对应的位置,如我要debugmaster,elif[ "$COMMAND" = "master" ] ; thenCLASS='org.apache.hadoop.hbase.master.HMaster'if[ "$1" != "stop" ] && [ "$1" !="原创 2014-03-27 16:00:27 · 2254 阅读 · 0 评论 -
hbase hfilev2文件
HFileV2文件 HFileV2文件写入通过StoreFile.Writer-->HFileWriterV2进行写入。 文件格式通过hfile.format.version配置。默认为2,也只有2这个值在0.96可用。 可通过cf中配置DATA_BLOCK_ENCODING配置dataBlock的encoding, 可配置值:NONE,PREFIX...2014-05-10 21:58:16 · 137 阅读 · 0 评论 -
关于Hbase的cache配置
关于Hbase的cache配置在hbase中的hfilecache中,0.96版本中新增加了bucket cache,bucket cache通过把hbase.offheapcache.percentage配置为0来启用,如果hbase.offheapcache.percentage的配置值大于0时,直接使用堆外内存来管理hbase的cache,通过把hfile.block.ca...2014-07-15 16:24:40 · 273 阅读 · 0 评论 -
hbase0.96.1 hmaster启动过程分析
HBASE HMASTER启动分析Hbase debug配置:找到hbase这个shell脚本文件,在对应的位置,如我要debugmaster,elif[ "$COMMAND" = "master" ] ; thenCLASS='org.apache.hadoop.hbase.master.HMaster'if[ "$1" != "stop" ] && [ ...2014-04-12 20:45:30 · 150 阅读 · 0 评论 -
HBASE REGIONSERVER启动过程
HBASEHRegionServer启动分析regionserver的启动入口是HRegionServer.main方法生成HRegionServercommandLine实例,并执行doMain方法,此方法中通过ToolRunner.run去调用HRegionServercommandLine.run方法a.判断传入参数是start还是stop,如果是start,调用HRe...原创 2014-04-12 20:49:47 · 272 阅读 · 0 评论 -
HMBASE的REGION分配
HMBASE的REGION分配Region assign分为meta的分配与userregion assign,同时包含hbase启动时与rs下线,因此从4个方面来说明regionassign启动时的metaregion assign针对master启动时的补充说明:Hmaster.run.finishInitialization方法中:得到WALs目录下所有子目录,如果...原创 2014-04-12 20:53:10 · 195 阅读 · 0 评论 -
region assign 流程补充说明
region assign的流程补充Master端:1.regionserver下线,zk中注册的rs节点下的server子路径session过期被删除, master触发RegionServerTracker.nodeDeleted监听事件,并调用ServerManager.expireServer2.把下线的server添加到deadServers列表中,同时从onlineServers列表...2014-04-12 20:54:28 · 137 阅读 · 0 评论 -
hbase region分配,RS下线处理
RS下线的regionassign上面在RS启动部分已经提到过,RS在zk中的地址注册为SESSION过期自动清理的路径(ephemeral)。在master中通过RegionServerTracker对rs进行监控,当rs在zk的session过期时间内没有向zk发送心跳。表示rs已经下线,会触发RegionServerTracker.nodeDeletedpublicvo...2014-04-12 20:56:12 · 145 阅读 · 0 评论 -
日志重播分析
日志重播分析 Hbase的日志重播分为启动时的日志重播与rs下线时的日志重播操作。 通过hbase.master.distributed.log.replay来控制日志的split是在region的reopen前执行还是reopen后执行 如果是true表示在reopen后执行,否则相反 Rs下线时的日志重播分析 master监听下线...2014-04-13 16:42:55 · 300 阅读 · 0 评论 -
hbase put 流程分析client端
数据写入(Put)处理流程分析:Put通过生成一个HTable实例,并调用其put方法时,的执行流程,此部分分析分为client与regionserver两个部分,client端:Htable.put-->doPut,如果是put一个list时,会迭代调用doPutprivatevoiddoPut(Put put) throws InterruptedIOExcept...2014-04-14 16:19:57 · 160 阅读 · 0 评论 -
hbase put 流程分析regionserver端
RegionServer端put数据流程分析: client端通过MultiServerCallable.call调用rs的rpc的multi方法。 regionServer实例ClientProtos.ClientService.BlockingInterface接口。 public MultiResponse multi(finalRpcC...2014-04-15 13:34:12 · 220 阅读 · 0 评论 -
Hlog的相关处理流程不完全分析
Hlog的相关处理流程: 在对hbase中数据进行更新操作put/delete/append/increment操作时,记录操作日志供日志重播的相关处理。 Hlog的写入通过regionserver实例生成时生成的FSLog为的实例。 通过LogRoller线程定期去检查并删除过期的日志文件。 定期检查的时间间隔通过hbase.regionserver....2014-04-15 17:59:20 · 233 阅读 · 0 评论 -
memstore的flush流程分析
memstore的flush流程分析memstore的flush发起主要从以下几个地方进行: a.在HRegionServer调用multi进行更新时,检查是否超过全局的memstore配置的最大值与最小值, 如果是,发起一个WakeupFlushThread的flush请求,如果超过全局memory的最大值,需要等待flush完成。 b.在HRegionServer进行数据...2014-04-18 15:57:53 · 255 阅读 · 0 评论 -
region split流程分析
region split流程分析split region的发起主要通过client端调用regionserver.splitRegion或memstore.flsuh时检查并发起。 Client通过rpc调用regionserver的splitRegion方法client端通过HBaseAdmin.split传入region name与split point(切分的rowkey,...2014-04-19 16:37:10 · 151 阅读 · 0 评论 -
compact处理流程分析
compact处理流程分析 compact的处理与split相同,由client端与flush时检查发起。 针对compact还有一个在rs生成时生成的CompactionChecker线程定期去检查是否需要做compact操作 线程执行的间隔时间通过hbase.server.thread.wakefrequency配置,默认为10*1000ms Compa...2014-04-21 21:05:54 · 383 阅读 · 0 评论 -
minor compaction时的scan操作分析
minor compaction时的scan操作分析 minor compaction时的scan主要是对store下的几个storefile文件进行合并,通常不做数据删除操作。 compaction的发起通过CompactSplitThread.requestCompactionInternal--> CompactSplitThread.Compacti...2014-04-23 14:00:19 · 172 阅读 · 0 评论 -
Major compaction时的scan操作
Major compaction时的scan操作 发起major compaction时,通过CompactSplitThread.CompactionRunner.run开始执行 -->region.compact(compaction, store)-->store.compact(compaction)--> CompactionContex...2014-04-24 16:14:38 · 177 阅读 · 0 评论 -
Hbase MemStoreLAB
关于MemStore的补充 在通过HStore.add向store中添加一个kv时,首先把数据写入到memstore中。这一点没有什么说明; publiclong add(final KeyValue kv) { lock.readLock().lock(); try { returnthis.memstore.add(kv); } fi...2014-05-10 10:17:45 · 226 阅读 · 0 评论 -
关于Hbase的cache配置
关于Hbase的cache配置原创 2014-07-15 16:25:03 · 5449 阅读 · 0 评论 -
HBASE REGIONSERVER启动过程
HBASEHRegionServer启动分析regionserver的启动入口是HRegionServer.main方法生成HRegionServercommandLine实例,并执行doMain方法,此方法中通过ToolRunner.run去调用HRegionServercommandLine.run方法a.判断传入参数是start还是stop,如果是start,调用HRegio原创 2014-03-30 12:38:57 · 4940 阅读 · 0 评论 -
HBase put操作client端分析
数据写入(Put)处理流程分析:Put通过生成一个HTable实例,并调用其put方法时,的执行流程,此部分分析分为client与regionserver两个部分,client端:Htable.put-->doPut,如果是put一个list时,会迭代调用doPutprivatevoiddoPut(Putput)throwsInterruptedIOException,原创 2014-04-14 16:15:46 · 3566 阅读 · 0 评论 -
hbase put regionserver处理分析
RegionServer端put数据流程分析:client端通过MultiServerCallable.call调用rs的rpc的multi方法。regionServer实例ClientProtos.ClientService.BlockingInterface接口。publicMultiResponsemulti(finalRpcControllerrpc原创 2014-04-15 13:24:43 · 1299 阅读 · 5 评论 -
HMBASE的REGION分配
HMBASE的REGION分配Region assign分为meta的分配与userregion assign,同时包含hbase启动时与rs下线,因此从4个方面来说明regionassign启动时的metaregion assign针对master启动时的补充说明:Hmaster.run.finishInitialization方法中:得到WALs目录下所有子目录,如果W原创 2014-04-02 18:29:58 · 2218 阅读 · 0 评论 -
Hlog的相关处理流程不完全分析
Hlog的相关处理流程:在对hbase中数据进行更新操作put/delete/append/increment操作时,记录操作日志供日志重播的相关处理。Hlog的写入通过regionserver实例生成时生成的FSLog为的实例。通过LogRoller线程定期去检查并删除过期的日志文件。定期检查的时间间隔通过hbase.regionserver.logroll.period进行配置原创 2014-04-15 17:51:43 · 1462 阅读 · 0 评论 -
hbase region分配,RS下线处理
RS下线的regionassign上面在RS启动部分已经提到过,RS在zk中的地址注册为SESSION过期自动清理的路径(ephemeral)。在master中通过RegionServerTracker对rs进行监控,当rs在zk的session过期时间内没有向zk发送心跳。表示rs已经下线,会触发RegionServerTracker.nodeDeletedpublicvoidn原创 2014-04-03 11:49:57 · 2317 阅读 · 0 评论 -
memstore的flush流程分析
memstore的flush流程分析memstore的flush发起主要从以下几个地方进行: a.在HRegionServer调用multi进行更新时,检查是否超过全局的memstore配置的最大值与最小值, 如果是,发起一个WakeupFlushThread的flush请求,如果超过全局memory的最大值,需要等待flush完成。 b.在HRegionServer进行数据更原创 2014-04-18 15:53:56 · 2474 阅读 · 3 评论 -
region split流程分析
region split流程分析原创 2014-04-19 16:37:18 · 2442 阅读 · 2 评论 -
compact处理流程分析
hbase0.96 compact处理流程分析原创 2014-04-21 20:56:39 · 2464 阅读 · 0 评论 -
minor compaction时的scan操作分析
minor compaction时的scan操作分析minor compaction时的scan主要是对store下的几个storefile文件进行合并,通常不做数据删除操作。compaction的发起通过CompactSplitThread.requestCompactionInternal-->CompactSplitThread.CompactionRunner.run-->re原创 2014-04-23 13:56:12 · 1451 阅读 · 0 评论 -
Major compaction时的scan操作
Major compaction时的scan操作发起majorcompaction时,通过CompactSplitThread.CompactionRunner.run开始执行-->region.compact(compaction,store)-->store.compact(compaction)-->CompactionContext.compact,发起compact操作C原创 2014-04-24 16:07:58 · 1527 阅读 · 0 评论 -
hbase memstorelab
关于MemStore的补充在通过HStore.add向store中添加一个kv时,首先把数据写入到memstore中。这一点没有什么说明;publiclongadd(finalKeyValue kv) {lock.readLock().lock();try{returnthis.memstore.add(kv);}finally{lock.readLock().un原创 2014-05-10 10:15:46 · 1121 阅读 · 0 评论 -
hbase hfilev2
HFileV2文件HFileV2文件写入通过StoreFile.Writer-->HFileWriterV2进行写入。文件格式通过hfile.format.version配置。默认为2,也只有2这个值在0.96可用。可通过cf中配置DATA_BLOCK_ENCODING配置dataBlock的encoding,可配置值:NONE,PREFIX,DIFF,FAST_DIFF,PREF原创 2014-05-10 21:57:51 · 1606 阅读 · 0 评论 -
UserScan的处理流程分析
UserScan的处理流程分析前置说明Userscan是通过client或cp中发起的scanner操作。在Scan中通过caching属性来返回可以返回多少条数据,每次进行next时。通过batch属性来设置每次在rs端每次nextkv时,可读取多少个kv,(在同一行的情况下)在生成Scan实例时,最好是把family与column都设置上,这样能保证查询的最高效.cli原创 2014-04-25 16:41:13 · 2085 阅读 · 0 评论 -
region assign 流程补充说明
region assign的流程补充Master端:1.regionserver下线,zk中注册的rs节点下的server子路径session过期被删除, master触发RegionServerTracker.nodeDeleted监听事件,并调用ServerManager.expireServer2.把下线的server添加到deadServers列表中,同时从onl原创 2014-04-11 15:04:35 · 1480 阅读 · 0 评论 -
日志重播分析
日志重播分析Hbase的日志重播分为启动时的日志重播与rs下线时的日志重播操作。通过hbase.master.distributed.log.replay来控制日志的split是在region的reopen前执行还是reopen后执行如果是true表示在reopen后执行,否则相反Rs下线时的日志重播分析master监听下线master通过RegionServe原创 2014-04-13 16:41:51 · 1912 阅读 · 0 评论 -
UserScan的处理流程分析
UserScan的处理流程分析 前置说明 Userscan是通过client或cp中发起的scanner操作。 在Scan中通过caching属性来返回可以返回多少条数据,每次进行next时。 通过batch属性来设置每次在rs端每次next kv时,可读取多少个kv,(在同一行的情况下) 在生成Scan实例时,最好是把family与column都设...2014-04-25 16:46:55 · 414 阅读 · 0 评论