HBase Thrift

1.Thrift 架構圖
Thrift 包含一個完整的堆棧結構用於構建客戶端和服務器端。下圖描繪了 Thrift 的整體架構。

如圖所示,圖中黃色部分是用戶實現的業務邏輯,褐色部分是根據 Thrift 定義的服務接口描述文件生成的客戶端和服務器端代碼框架,紅色部分是根據 Thrift 文件生成代碼實現數據的讀寫操作。紅色部分以下是 Thrift 的傳輸體系、協議以及底層 I/O 通信,使用 Thrift 可以很方便的定義一個服務並且選擇不同的傳輸協議和傳輸層而不用重新生成代碼。
Thrift 服務器包含用於綁定協議和傳輸層的基礎架構,它提供阻塞、非阻塞、單線程和多線程的模式運行在服務器上,可以配合服務器 / 容器一起運行,可以和現有的 J2EE 服務器 /Web 容器無縫的結合。
其他描述點擊:

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服務

  1. 客戶端調用THBaseService.Client的方法並傳入參數
  2. org.apache.hadoop.hbase.thrift2包中的ThriftHBaseServiceHandler類實現了Iface接口,並定義了方法的具體實現。
  3. HBase 定義了Thrift的服務端:ThriftServer

在服務端定義Processor,並將實現類的實例handler作爲構造參數。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章