- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
HBase 源码分析 1-RPC 机制
HBase 采用了和Hadoop 相同的RPC 机制,作为它的主要通信手段.
这是一个轻量的,不同于Java 标准的RMI 的一种方式.所以它的实现必须克服一些问题.如:
1) 如何分配RPC 角色和通信信道,使得RPC 通信可以实现.
2) 通信接口或协议的内容
3) 如何传输对象(Object),即序列化.
4) 传输,并发及会话控制
5) 其它的保障,如出错,重试等.
Question1: RPC 角色
对于第一个问题,首先要确定RPC 通信的角色.请参看下表.
HBase 通信信道 HBase 的通信接口
客户端 服务端
HBase Client Master Server HMasterInterface
HBase Client Region Server HRegionInterface
Region Server Master Server HMasterRegionInterface
HMaster Server
HMasterInterface
HBase Client
HMasterRegionInterface
HRegionInterface
HRegion Server
HBase RPC 有明显的客户端和服务端之分. 由 HBase Client,Region server(HRegionServer), Master
server (HMaster)三者组成了三个信道.最右边的一列是通信两端之间约定的通信接口.客户端调用这个接口,而服
务端实现这个接口. 所以最基本的工作流程就是
1) 客户端取得一个服务端通信接口的实例.
2) 客户端调用这个实例中的方法
3) 客户端向服务端传输调用请求
4) 服务端接口实现被调用
5) 服务端向客户端传输结果
Client Server
RPC
那么除此之外的通信是不存在的吗?比如 Master 向 Region server 发出请求.答案是—否,原因很简单,一个
Master server 的实例也可以以HBase Client 的角色来访问Region Server,
即调用它的HRegionInterface 接口.事实上确实如此,Master 必须调用Region server 的接口来完成它的工作.
但是有一点可以确定的,没有Master server 向Region server 主动发布命令的接口,
而只有Region server 主动向Master server 报告和获取命令的接口,即HMasterRegionInterface.
Question2: 通信协议
HBase 解决第二个问题,要参考三个通信接口.这三者可以说是HBase 架构的基因
HMasterInterface
1) HMasterInterface 由Master server(HMaster)实现, 相当于是总管,所以它提供的方法归纳为
a) 对表的增删改(CUD)的操作,及对表上线(enable),下线(disable,delete)的操作
b) 对表的列的增删改(CUD)操作
c) 关闭这个HBase 集群(shutdown)和取得集群的状态(getClusterStatus)的方法.
说到底,Master server 在前两项任务上充当了HBase Client 的角色.
只是它比较特别一点,因为它主要操作的是Root 和Meta 表. 这两个表是HBase 数据架构的元数据表
对于HBase Client 来说是如何获得这个实例呢?
请参考o.a.h.hbase.client.HConnection.getMaster()这个方法.
HConnectionM
您可能关注的文档
最近下载
- 计算机兴趣小组活动计划.docx VIP
- 人民币实际有效汇率波动对天津市贸易收支影响的实证研究的中期报告.docx VIP
- 中国石狮子PPT课件.pptx VIP
- 2025年全国高考(新课标)化学真题卷含答案解析 .pdf VIP
- 新部编小学语文五年级上册看拼音写词语.docx VIP
- 人教版(2025)必修第三册Unit 1 Festivals and celebrations Discovering Useful Structures 课件(共46张PPT)(含音频+视频).pptx VIP
- 年产2500吨高端氟材料项目环评报告表.pdf VIP
- 临床微生物室标准操作程序SOP.pdf VIP
- Boss Roland逻兰RC-600 乐句循环工作站RC-600 中文用户手册 说明书.pdf
- 2025年秋季湖北武汉市华中师范大学校友工作办公室学生助理招聘笔试历年典型考题(历年真题考点)解题思路附带答案详解(5套).docx VIP
文档评论(0)