HBase源码分析–RPC机制基础.doc

HBase源码分析–RPC机制基础.doc

ID:51075165

大小:187.50 KB

页数:5页

时间:2020-03-18

HBase源码分析–RPC机制基础.doc_第1页
HBase源码分析–RPC机制基础.doc_第2页
HBase源码分析–RPC机制基础.doc_第3页
HBase源码分析–RPC机制基础.doc_第4页
HBase源码分析–RPC机制基础.doc_第5页
资源描述:

《HBase源码分析–RPC机制基础.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、HBase源码分析一RPC机制:基础PostedonJuly29,2010byZhenlaoHuangHBase采用了和Hadoop相同的RPC机制,作为它的主要通信手段.这是一个轻量的,不同于Java标准的RMI的一•种方式.所以它的实现必须克服一些问题.如:1)如何分配RPC角色和通信信道,使得RPC通信可以实现.2)通信接口或协议的内容3)如何传输对象(Object),即序列化.4)传输,并发及会话控制5)其它的保障,如出错,重试等.对于第一个问题,首先要确定RPC通信的角色.请参看下表.HBase通信信道HBase的通信接口客户端服务端HBaseClientMast

2、erServerHMasterlnterfaceHBaseClientRegionSenderHRegionlnterfaceRegionServerMasterServerHMasterRegionInterfaceHBaseRPC有明显的客户端和服务端之分.由HBaseClient,Regionserver,Masterserver三者组成了三个信道.最右边的一列是通信两端之间约定的通信接口•客户端调用这个接口,而服务端实现这个接口.所以最基本的工作流程就是1)客户端取得一个服务端通信接口的实例.2)客户端调用这个实例中的方法3)客户端向服务端传输调用请求4)服务端接口

3、实现被调用5)服务端向客户端传输结果那么除此之外的通信是不存在的吗?比如Master向Regionserver发出请求.答案是一否,原因很简单,一个Masterserver的实例也可以以HBaseClient的角色来访问RegionServer,即调用它的HRegionTnterface接口.事实上确实如此,Master必须调用Regionserver的接口来完成它的工作.但是有一点可以确定的,没有Masterserver向Regionserver主动发布命令的接口,而只有Regionserver主动向Masterserver报告和获取命令的接口,即HMasterRegio

4、nlnterface.HBase解决第二个问题,要参考三个通信接口.这三者可以说是HBase架构的基因,只看这三个接口的源码,就可以让你大致了解HBase的工作思想.1)HMasterTnterface,由Masterserver实现,相当于是总管,所以它提供的方法归纳为a)对表的增删改的操作,及对表上线,下线的操作b)对表的列的增删改操作c)关闭这个HBase集群和取得集群的状态的方法.说到底,Masterserver在前两项任务上充当了HBaseClient的角色.只是它比较特别一点,因为它主要操作的是Root和Meta表.这两个表是HBase数据架构的元数据表以下是题

5、外话,对于HBaseClient来说是如何获得这个实例呢?请参考org.apache.hadoop.hbase.client.HConnection.getMaster()这个方法.而HConnction的实例是来自org.apache.hadoop.hbase.client.HConnectionManager的getCormection()的静态方法.HConnection真正的实现是HConnectionManager.TableServers2)HRegionlnterface,由RegionServer实现.这是HBase主要的数据操作接口•它的功能有a)Get操

6、作,读表记录的操作b)Put操作,检查及Put的组合操作,列值的增值的操作,即写表记录的操作c)Delete操作,删除表记录的操作d)Scan操作,分为打开Scanner,得下一条或多条的记录及关闭Scanner的操作e)行锁及解锁操作f)定位(查找)的操作g)取得本Regionserver上Region信息,服务器信息的操作Regionserver顾名思义就是为Region服务的服务器.所以它的主体的方法都是针对一个Region的.一个Region也就是一个表的横向片断,表太大了,所以要分给不同的RegionServer来管理.从HBaseclient的角度来说,因为一个

7、对数据表的操作可能要跨多个Region,也就是要访问多个Regionserver.所以这个工作就必须由client來完成.HBaseclient的API就是要解决这个复杂性.HRegionlntcrface的实例同样来自HConnection接口的实例HConnectionManager.TableServers.3)HMasterRegionlnterface,由Masterserver实现.它只有两个的方法,a)向Masterserver报告我启动了,Masterserver就回给它当前的配置,如文件系统,hb

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。