Hbase API管理功能1

1.    Hbase建表涉及到:表结构+列簇结构的定义,这些定义关系到表和列簇内的数据如何存储以及何时存储。

2.    Hbase中的数据最终存储到表中的主要原因是:控制表中的列以到达共享表内的某些特性。

3.    客服端与服务器、服务器与服务器之间进行通信,都是用Hadoop RPC框架,参数都实现了Writable接口。Writable接口有两个必须实现的方法:void write(DataOutput out),

Void readFiles(DataInput  in)。

4.    表名会作为存储系统中的存储路径的一部分来使用。

5.    通常的数据库范式化不适合hbase,hbase中的表的数量相对较少。

6.    :getName(),getNameAsString(),setName(byte[] name),表名不能以“.”,”-”开头,可以包括拉丁字母,数字,”-”,”_“,”.”。

7.    列簇:addFamily() , hasFamily() ,getColumnFamilies() , getFamily() , removeFamily()  可以添加列簇,通过列簇检查列簇是否存在、获取存在列簇的列表、获取某个列簇描述符,删除列簇。通过HTableDescriptor类为一张表增加列簇。列簇名必须为可见字符是因为这个名字将会在底层存储系统中使用。列簇不能重命名,做法是新建一个列簇,然后从旧列簇中复制数据到新列簇。

8.    文件限制大小:setMaxFileSize(long  maxFileSize),默认参数是256MB,表数据量很大时,考虑这个值调高。一行数据不能跨region存储。

9.    只读:setReadOnly(boolean  b),设置为true,此表只能读不能修改。

10.  Memstore刷写大小:setMemStoreFlushSize(long  size),默认值是64MB,这个参数控制何时触发将内存的数据写入磁盘。如果参数设置的很大,可以生产的存储文件越大,文件数量越少,导致更长的阻塞时间。

11.  延时日志刷写:isDeferredLogFlush() , setDefrredLogFlush(),默认是false。Hbase有两种将WAL保证到磁盘的方式,一种是延时日志刷写,另一种则不是。

12.  最大版本数:getMaxVersions() , setMaxVersions(),默认为3。

13.  压缩:hbase支持插件式压缩算法,压缩类型不是String而是Compression.Algorithm枚举。NONE,GZ,LZO,SNAPPY 获取压缩信息的两种方法:一般压缩设置、合并压缩设置。

14.  块大小:小存储块在get或scan操作时会加载到内存中,getBlockssize(),setBlocksize(),默认参数为64KB,此参数用于指定在一次读取的过程中顺序读取多少数据到内存缓冲区。用于高速加载和缓存数据。

15.  缓存块:默认参数是true,每次读取的块都会缓存到内存中,如果用户要顺序读取某个特定列簇,最好设为false。isBlockCacheEnabled() ,setBlockCacheEnabled().

16.  生存期TTL:设置一个基于时间戳的临界值,内部的管理会自动检查TTL值是否到达上限,在major合并过程中时间戳被判定为超过TTL的数据会被删除。setTimeToLive(int time),单位是秒。默认值是Integer.MAX_VALUE使用默认值会永久性保存数据。

17.  在内存中:默认值false,isInMemory() , setInMemory(),将这个值设为true并不意味着将整个列簇的所有存储块都加载到内存中,也不意味着它们会长期保存在那,而是一种承诺,或说是高优先级。这个参数适合数据量较小的列簇,例如:登录账号和密码的用户表。

18.  布隆过滤器:能减少特定访问模式下的查询时间,这种模式增加了内存和存储的负担,默认是关闭的。支持的布隆过滤器类型:NONE,ROW(行键使用布隆过滤器),ROWCOL(列键使用布隆过滤器)。由于列的数量远多于行的数量,使用ROWCOL会占用大量的空间。 StoreFile.BloomType getBloomFilterType() ; void setBloomFilterType()

19.  复制范围:默认参数是0,意味着这个功能默认关闭。可以另设为1,表示开启本地集群向远程集群实时同步的功能。Int getScope()  , void  setScope(int  scope)

20.  检查列簇是否存在:不返回布尔类型,检查不合法时抛出异常,否则将输入直接返回。这个方法会在构造函数中调用,不需要用户提前调用。Static  byte[] isLegalFamilyName(byte[]  b)

 

你可能感兴趣的:(Hbase,API应用)