HBase Thrift

来源:互联网 发布:ubuntu卸载samba 编辑:程序博客网 时间:2024/05/29 00:34
1.Thrift 架构图
Thrift 包含一个完整的堆栈结构用于构建客户端和服务器端。下图描绘了 Thrift 的整体架构。

如图所示,图中黄色部分是用户实现的业务逻辑,褐色部分是根据 Thrift 定义的服务接口描述文件生成的客户端和服务器端代码框架,红色部分是根据 Thrift 文件生成代码实现数据的读写操作。红色部分以下是 Thrift 的传输体系、协议以及底层 I/O 通信,使用 Thrift 可以很方便的定义一个服务并且选择不同的传输协议和传输层而不用重新生成代码。
Thrift 服务器包含用于绑定协议和传输层的基础架构,它提供阻塞、非阻塞、单线程和多线程的模式运行在服务器上,可以配合服务器 / 容器一起运行,可以和现有的 J2EE 服务器 /Web 容器无缝的结合。
其他描述点击:
https://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/

2.HBase Thrift实现

  • THBaseService 这个类在org.apache.hadoop.hbase.thrift2.generated包里,是用Thrift直接生成的。
主要包括 Iface 接口和 继承org.apache.thrift.TServiceClient并实现 Iface接口的类:Client

Iface中给出了全部的服务接口,可以根据需要来选择,Client实现了与Thrift交互的一些逻辑的处理,通过该类对象可以代理HBase提供的Thrift服务,这个褐色部分就是架构图中的褐色部分,供客户端来调用。


  • 通过一个自定义的Thrift客户端访问HBase的Thrift服务
https://yq.aliyun.com/articles/28102

  1. 客户端调用THBaseService.Client的方法并传入参数
  2. org.apache.hadoop.hbase.thrift2包中的ThriftHBaseServiceHandler类实现了Iface接口,并定义了方法的具体实现。
  3. HBase 定义了Thrift的服务端:ThriftServer

在服务端定义Processor,并将实现类的实例handler作为构造参数。



原创粉丝点击