1. HBaseAdmin类提供了集群管理操作,允许用户查看集群当前的状态、执行表级任务和管理region。
2. checkHBaseAvailable()方法可以验证客户端应用是否能与给定文件配置中的远程HBase集群进行通信。
3. getClusterStatus()方法可以通过查询Clusterstatus类的实例返回集群信息,这个对象包含了集群状态的详细信息。
4. closeRegion(String regionname, String hostAndPort)方法可以让已经在region服务器中上线的特定region下线。任何可用表的所用region都应该是在线状态,不能随意的下线某个region。regionname参数需要与元数据表.META.中存储的一样。这个命令不经过master节点,即客户端直接与region服务器通信并发送region下线命令,该命令对master节点是透明的。
5. flush(String tableNameOrRegionName)表中所有的更新在未刷写到磁盘之前都会先写入region的MemStore实例中。MemStore是Sorted Memory Buffer,用户写入的数据首先会放入MemStore,当MemStore满了以后会Flush成一个StoreFile(底层实现是HFile)。客户端程序可以在到达memstore刷写上线之前显示地以同步模式调用当前方法,以达到将数据刷写到磁盘的目的。
6.compact(String tableNameOrRegionName)此方法是异步方法,因为合并是个花费时间比较长的操作,客户端没必要一直等待这个操作完成。调用这个方法后,这个表或者region会加入到这个region所在的region服务器的一个执行队列,并会在后台完成操作,或者在上线该表region的所在region服务器中执行。当StoreFile文件数量增长到一定阈值,会触发Compact合并操作,将多个StoreFiles合并成一个StoreFile,合并过程中会进行版本合并和数据删除,因此可以看出HBase其实只有增加数据,所有的更新和删除操作都是在后续的compact过程中进行的,这使得用户的写操作只要进入内存中就可以立即返回,保证了HBase I/O的高性能。当StoreFiles Compact后,会逐步形成越来越大的StoreFile,当单个StoreFile大小超过一定阈值后,会触发Split操作,同时把当前Region Split成2个Region,父Region会下线,新Split出的2个孩子Region会被HMaster分配到相应的HRegionServer上,使得原先1个Region的压力得以分流到2个Region上。
7. majorCompact(StringtableNameOrRegionName)此方法与compact()方法类似,也依赖于后台队列操作,不过是执行的major合并。
8. split(String tableNameOrRegionName),split(String tableNameOrRegionName , String splitPoint)此方法用于拆分一个region或拆分整张表。如果提供了表名,API内部会迭代这张表的所有region并调用拆分命令。
9. assign(byte[] regionName,Boolean force),unassign(byte[] regionName,Booleanforce)此方法用来控制region的上线和下线。Force参数设置为true对上面两个方法的意义不一样:第一个方法会强制在zookeeper中标记这个region为下线状态,并在这个region转移到一个新的region服务器中。用户使用时需要注意这个region是否已经上线。第二个方法意味着无论当前region是否在线都会强制再做一次下线操作。如果force设置为false就不会带来任何影响。
10. move(byte[] encodedRegionName,byte[] destServerName)此方法可以通过客户端控制某个region在哪台服务器上线,此方法将一个region从当前region服务器移到一个新的region服务器。如果destServerName参数可以设置为null,这样可以获得一个随机的服务器地址。
11. Boolean balanceSwitch(Boolean b)
Boolean balancer()第一个方法可以控制region的负载均衡算法是否开启,如果开启了,第二个方法能主动运行负载均衡算法将每台region服务器上线的region进行均匀的分配。
12. Voidshutdown() ,void stopMaster() ,void stopRegionServer(String hostNamePort)关闭集群、关闭master进程、关闭某台region服务器。是个不可逆过程。