客戶端API可以管理HBase的集群、 表、 列族等元數(shù)據(jù)。大多數(shù)管理功能通過(guò)Admin來(lái)實(shí)現(xiàn),標(biāo)簽除外。
1.列族管理 HColumnDescriptor
列族常見(jiàn)的屬性管理:
- 數(shù)據(jù)生存時(shí)間:通過(guò)設(shè)置數(shù)據(jù)生存時(shí)間(TimeToLive, 縮寫為TTL) , HBase可以自動(dòng)幫你清空超過(guò)生存時(shí)間的過(guò)期數(shù)據(jù)。
- 版本數(shù):設(shè)置列族存儲(chǔ)的最大和最小版本數(shù)(Versions), 當(dāng)某個(gè)單元格的數(shù)據(jù)存儲(chǔ)達(dá)到了最大版本數(shù)的數(shù)據(jù)的時(shí)候, 再插入新數(shù)據(jù)會(huì)將舊數(shù)據(jù)刪除。
- 布隆過(guò)濾器:可以知道元素在HFile中是否“ 不存在” 或者“ 可能存在”
- 塊緩存:使用內(nèi)存來(lái)記錄數(shù)據(jù), 適用于提升讀取性能。
- 大字段(BOM):當(dāng)文件大于100KB小于10MB, 即可以被視為MOB。 HBase存儲(chǔ)MOB字段的時(shí)候其實(shí)也是把該文件直接存儲(chǔ)到HDFS上, 而在表中只存儲(chǔ)了該文件的鏈接。
2.表管理HTableDescriptor
- 最大文件尺寸(maxFileSize):設(shè)置該表的Region的最大尺寸。 如果有Region的大小超過(guò)了定義值, 則會(huì)觸發(fā)Region拆分
- 只讀模式
- Memstore刷寫值:設(shè)置Memstore刷寫值( memStoreFlushSize) 的最大值, 當(dāng)Memstore存儲(chǔ)的數(shù)據(jù)大于該值就會(huì)觸發(fā)刷寫( flush)
3.Region管理
獲取服務(wù)器信息和region信息
Collection<ServerName> serverNames= admin.getClusterStatus().getServers();
Iterator<ServerName> it=serverNames.iterator();
while(it.hasNext()) {
ServerName serverName=it.next();
System.out.println("\nServer="+serverName.getServerName()+"擁有以下region:");
List<HRegionInfo> regions =admin.getOnlineRegions(serverName);
for(HRegionInfo region:regions) {
System.out.println(region.getRegionNameAsString());
}
4.快照管理
快照就是表在某個(gè)時(shí)刻的結(jié)構(gòu)和數(shù)據(jù)。 可以使用快照來(lái)將某個(gè)表快速恢復(fù)到某個(gè)時(shí)刻的結(jié)構(gòu)和數(shù)據(jù)。
原理:快照并不實(shí)際地復(fù)制數(shù)據(jù), 而是保存一份文件列表, 通過(guò)修改表所鏈接的文件來(lái)改變表的數(shù)據(jù)。
恢復(fù)快照操作包括:停用表-》恢復(fù)快照-》啟用表,例如:
admin.disableTable(TableName.valueOf("mytable"));
admin.restoreSnapshot("test_snapshot_1");
admin.enableTable(TableName.valueOf("mytable"));
5.維護(hù)工具管理
Admin提供了針對(duì)常見(jiàn)的HBase維護(hù)工具的調(diào)用方法,主要介紹:
- 均衡器:HBase提供了一個(gè)均衡器用于自動(dòng)均衡各個(gè)RegionServer之間的壓力
- 規(guī)整器:用于規(guī)整Region的尺寸,自動(dòng)調(diào)整Region的尺寸。
- 目錄管理器:所謂的目錄指的就是hbase:meta表中存儲(chǔ)的Region信息。 當(dāng)HBase在拆分( Split) 或者合并( merge) 的時(shí)候, 使用目錄管理器( catalog janitor) 來(lái)清理這些原來(lái)的Region信息
6.可見(jiàn)性標(biāo)簽管理
介紹一個(gè)不由Admin接口提供的管理功能。通過(guò)給數(shù)據(jù)加上可見(jiàn)性標(biāo)簽可以實(shí)現(xiàn)簡(jiǎn)單的用戶,用戶組的權(quán)限控制。