![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hbase源码分析
文章平均质量分 77
东东儿
苦海无涯肯争渡,人生当见一惊鸿
展开
-
HBase源码阅读(三)如何定位region
上一篇文章中介绍了HTable中读写数据的逻辑,本篇介绍一下client如何在hbase集群中定位到需要的region。先介绍一下大致原理,1.2版本中的所有region布局信息被存放在meta表中,meta表永不分裂,仅有一个region,meta表的的位置被存放在zk中,所以client想要找到一个region的位置,需要先访问zk,找到meta表的位置,然后在meta表中查询到自己需要访问的region的信息。meta表中信息如下图所示(图片引用自《HBase原理与实践》):可以看到,meta表原创 2022-03-23 23:01:42 · 3074 阅读 · 0 评论 -
HBase源码阅读(二)客户端HTable读写流程
阅读代码基于hbase 1.2这周大致看了一下客户端的时候,及一些内部代码的实现,做个笔记,怕以后不怎么看客户端代码给忘掉了。客户端代码中会创建一个connection对象,然后通过connection对象来获取一个表对象HTable,通过HTable对象来进行数据的读写,主要分析一下Hbable中的代码。Put接口put接口可以一次put多条数据,也就是MultiPut功能,直接看这个函数的实现: public void put(final List<Put> puts) throw原创 2022-03-19 22:23:14 · 1757 阅读 · 0 评论 -
HBase源码阅读(一) balancer
最近开始搞hbase,大概看书感觉能明白架构,但是很多细节还是需要看代码才能明白,其中balancer模块是一个比较独立的模块,而且也是分布式系统中非常重要的模块,同时在我们自己的项目中也有调度相关的模块,看看hbase有无值得学习和借鉴的。不多逼逼,直接上代码。在HMaster的balancer()方法中会调用balancer,可以看到balancer会根据当前负载状态生成一个balance plan,但是具体对于plan的执行是由assignmentManager来负责的,这个模块代码先不讨论。//原创 2022-03-12 19:27:04 · 3388 阅读 · 0 评论