客户端API管理功能简介

客户端API可以管理HBase的集群、 表、 列族等元数据。大多数管理功能通过Admin来实现,标签除外。

1.列族管理 HColumnDescriptor

列族常见的属性管理:

  • 数据生存时间:通过设置数据生存时间(TimeToLive, 缩写为TTL) , HBase可以自动帮你清空超过生存时间的过期数据。
  • 版本数:设置列族存储的最大和最小版本数(Versions), 当某个单元格的数据存储达到了最大版本数的数据的时候, 再插入新数据会将旧数据删除。
  • 布隆过滤器:可以知道元素在HFile中是否“ 不存在” 或者“ 可能存在”
  • 块缓存:使用内存来记录数据, 适用于提升读取性能。
  • 大字段(BOM):当文件大于100KB小于10MB, 即可以被视为MOB。 HBase存储MOB字段的时候其实也是把该文件直接存储到HDFS上, 而在表中只存储了该文件的链接。

2.表管理HTableDescriptor

  • 最大文件尺寸(maxFileSize):设置该表的Region的最大尺寸。 如果有Region的大小超过了定义值, 则会触发Region拆分
  • 只读模式
  • Memstore刷写值:设置Memstore刷写值( memStoreFlushSize) 的最大值, 当Memstore存储的数据大于该值就会触发刷写( flush)

3.Region管理

获取服务器信息和region信息

Collection serverNames= admin.getClusterStatus().getServers();
        Iterator it=serverNames.iterator();
        while(it.hasNext()) {
            ServerName serverName=it.next();
            System.out.println("\nServer="+serverName.getServerName()+"拥有以下region:");
            
            List regions =admin.getOnlineRegions(serverName);
            for(HRegionInfo region:regions) {
                System.out.println(region.getRegionNameAsString());
            }

4.快照管理

快照就是表在某个时刻的结构和数据。 可以使用快照来将某个表快速恢复到某个时刻的结构和数据。
原理:快照并不实际地复制数据, 而是保存一份文件列表, 通过修改表所链接的文件来改变表的数据。
恢复快照操作包括:停用表-》恢复快照-》启用表,例如:

admin.disableTable(TableName.valueOf("mytable"));
admin.restoreSnapshot("test_snapshot_1");
admin.enableTable(TableName.valueOf("mytable"));

5.维护工具管理

Admin提供了针对常见的HBase维护工具的调用方法,主要介绍:

  • 均衡器:HBase提供了一个均衡器用于自动均衡各个RegionServer之间的压力
  • 规整器:用于规整Region的尺寸,自动调整Region的尺寸。
  • 目录管理器:所谓的目录指的就是hbase:meta表中存储的Region信息。 当HBase在拆分( Split) 或者合并( merge) 的时候, 使用目录管理器( catalog janitor) 来清理这些原来的Region信息

6.可见性标签管理

介绍一个不由Admin接口提供的管理功能。通过给数据加上可见性标签可以实现简单的用户,用户组的权限控制。

你可能感兴趣的:(客户端API管理功能简介)