简介
habse表相关操作,命名空间操作,region操作等涉及到元信息修改的ddl操作全等部都是通过HMaster角色进行。
我们可以通过java hbase-client模块或linux hbase-shell和HMaster打交道进行相关ddl操作。
通信原理
hbase client(hbase-shell)和HMaster(HRegionServer)之间使用rpc进行通信,相关接口通信协议
定义在hbase-protocol模块src/main/protobuf
下的.proto
文件中。
我们重点需要关注其中的 service ** rpc
关键字。我们常见的ddl和dql操作
主要分布在 Master.proto 的 service MasterService
和 Client.proto 的service ClientService
。
关于rpc和protobuf
推荐看一下grpc入门目前,能跑通helloworld即可。
几个关键概念:
- 注意: hbase rpc使用google protobuf语法定义协议,使用thrift框架实现通信底层,并没有使用grpc框架作为底层
- 注意一般一个proto中只有一个 service定义,每个rpc定义的方法表示一个接口方法。
- protobuf协议文件
.proto
会在编译时生成相应java源码文件。service定义会在源码文件中生成相应接口,比如BlockingInterface接口。 - BlockingInterface是同步阻塞接口。