摘要:版权声明:本文为博主原创文章,遵循版权协议,转载请附上原文出处链接和本声明。 在介绍HBASE flush源码之前,我们先在逻辑上大体梳理一下,便于后续看代码。flush的整体流程分三个阶段 1.第一阶段:prepare阶段,这个阶段主要是将当前memstore的内存结构做snapshot。HBAS 阅读全文
posted @ 2019-10-14 11:28 Evil_XJZ 阅读 (48) 评论 (1) 编辑
摘要:hbase mutation操作,比如delete put等,都需要先获取行锁,然后再进行操作,在获取行锁时,是通过HRegion.getRowLockInternal(byte[] row, boolean waitForLock)进行的,因此,我们先大体浏览一下这个方法的流程,如下。可以看到,该 阅读全文
posted @ 2019-08-08 18:36 Evil_XJZ 阅读 (146) 评论 (0) 编辑
摘要:compact一中介绍了HBASE compact的调度流程,本篇文章主要介绍实际进行compact的过程。先从上文中的chore中接入,在HRegionserver中的compactChecker chore方法中,会判断是否需要compact,如下: 当判断s.needsCompaction() 阅读全文
posted @ 2019-08-06 17:35 Evil_XJZ 阅读 (60) 评论 (0) 编辑
摘要:hbase compact流程较多,这里分章节介绍,首先介绍compact在regionserver中的调用流程,并不会涉及真正的compact读取合并文件的流程,后续介绍。 在regionserver启动时,会初始化compactsplitthread以及CompactionChecker。 hb 阅读全文
posted @ 2019-08-05 20:39 Evil_XJZ 阅读 (71) 评论 (0) 编辑
摘要:转载自:http://www.360doc.com/content/19/1101/16/67125028_870487351.shtml 常用Maven仓库网址:http://mvnrepository.com/http://search.maven.org/http://repository.s 阅读全文
posted @ 2019-11-01 16:23 Evil_XJZ 阅读 (24) 评论 (0) 编辑
摘要:1. 报错 解决办法: 1.导入一下pom.xml 如果导入后依然报错,但是报错是找不到某些方法,是导入的client和protocol不一致:如下 一个1.4.11一个1.0 因此改为: 阅读全文
posted @ 2019-11-01 16:17 Evil_XJZ 阅读 (21) 评论 (0) 编辑
摘要:PrefixFilter PrefixFilter是将rowkey前缀为指定字符串的数据全部过滤出来并返回给用户。例如: 但是hbase的PrefixFilter比较粗暴,并没有根据filter做过多的查询优化。上述代码会scan整个区间的数据,得到一条数据就判断其是否符合前缀条件,不符合就读吓一条 阅读全文
posted @ 2019-10-17 14:41 Evil_XJZ 阅读 (13) 评论 (0) 编辑
摘要:作者:Syn良子 出处:http://www.cnblogs.com/cssdongl/p/7098138.html 转载请注明出处 我们知道Hbase的Scan经常需要用到filter来过滤表中的数据返回给客户端,单个的filter还好说,如果有多个呢,那么就需要使用FilterList,它也是继 阅读全文
posted @ 2019-10-17 14:29 Evil_XJZ 阅读 (8) 评论 (0) 编辑
摘要:转载请注明出处 问题一 [ERROR] Failed to execute goal org.codehaus.mojo:findbugs-maven-plugin:3.0.0:findbugs (default) 解决方案: 降低maven的版本,在3.6.+的版本上会报这个错 问题二 解决方案: 阅读全文
posted @ 2019-10-16 17:29 Evil_XJZ 阅读 (68) 评论 (0) 编辑
摘要:今天有空闲时间看一下HBASE的写入代码 MutiAction类,是一个action的container,包括get . put. delete。并且是根据region name分组的。其中核心的就是add方法,根据传进来的region name将action分组 接下来介绍AyncProcess类 阅读全文
posted @ 2019-10-16 10:41 Evil_XJZ 阅读 (11) 评论 (0) 编辑
摘要:版权声明:本文为博主原创文章,遵循版权协议,转载请附上原文出处链接和本声明。 在介绍HBASE flush源码之前,我们先在逻辑上大体梳理一下,便于后续看代码。flush的整体流程分三个阶段 1.第一阶段:prepare阶段,这个阶段主要是将当前memstore的内存结构做snapshot。HBAS 阅读全文
posted @ 2019-10-14 11:28 Evil_XJZ 阅读 (48) 评论 (1) 编辑
摘要:flush split mvcc rpc get put mutation netty reactor模型 page cache 缓存 I/O 又被称作标准 I/O,大多数文件系统的默认 I/O 操作都是缓存 I/O。在 Linux 的缓存 I/O 机制中,操作系统会将 I/O 的数据缓存在文件系统 阅读全文
posted @ 2019-08-09 13:51 Evil_XJZ 阅读 (19) 评论 (0) 编辑
摘要:hbase mutation操作,比如delete put等,都需要先获取行锁,然后再进行操作,在获取行锁时,是通过HRegion.getRowLockInternal(byte[] row, boolean waitForLock)进行的,因此,我们先大体浏览一下这个方法的流程,如下。可以看到,该 阅读全文
posted @ 2019-08-08 18:36 Evil_XJZ 阅读 (146) 评论 (0) 编辑
摘要:最好了解 Java NIO 中 Buffer、Channel 和 Selector 的基本操作,主要是一些接口操作,比较简单。 本文将介绍非阻塞 IO 和异步 IO,也就是大家耳熟能详的 NIO 和 AIO。很多初学者可能分不清楚异步和非阻塞的区别,只是在各种场合能听到异步非阻塞这个词。 本文会先介 阅读全文
posted @ 2019-08-08 11:47 Evil_XJZ 阅读 (29) 评论 (0) 编辑