hbase常见的java类与数据模型(备忘)

hbase的java类与数据模型
HBaseAdmin、HBaseConfiguration 数据库管理类
HTable数据库实例
HTableDescribe 列族实例

三个重要操作
put:插入记录
get:返回记录
scanner:全盘扫描的类

HBaseConfiguration:HBase管理类,用于对集群的配置,通过色图方法来设置一系列的属性。
方法
返回值:void 函数:addResource(Path file) 描述:制定路径下文件作为资源添加到配置
返回值:void 函数:clear() 描述:清除所有的已有设置
返回值:void 函数:get(string name) 描述:获取属性名对应的值
返回值:string 函数:getBoolean(strung name, boolean defaultValue) 描述:获取为boolean类型是属性值
如果属性值类型不是boolean则返回默认属性值
返回值:void 函数:set(string name, string value) 描述:通过属性名来设置值
返回值:void 函数:setBoolean(string name, boolean name) 描述:设置boolean类型属性值

HBaseAdmin:比较关键,他提供一组管理HBse表的操作,整个HBase的管理类。
示例
HBaseAdmin admin = new HbaseAdmin(config);
admin.disableTable(“tableName”);
方法
返回值:void 函数:addColumn(String tableName, HColimnDescriptor column)描述:向已存在的表添加列
返回值:void 函数:checkHBaseAvailable(HBaseConfiguration conf)描述:静态函数,查看HBase是否处于运行状态
返回值:void 函数:createTable(HTableDescriptor desc)描述:创建一个表同步操作
返回值:void 函数:deleteTable(byte[] tableName)描述:删除表
返回值:void 函数:enableTable(byte[] tableName)描述:使表处于有效状态
返回值:void 函数:disableTable(byte[] tableName)描述:使表处于无效状态
返回值:HTableDescriptor[] 函数:listTable() 描述:列出所有用户控件表项
返回值:void 函数:modifyTable(byte[] tableName,HTableDescriptor htd) 描述:修改表模式,是异步操作,可能需要一些时间
返回值:Boolean 函数:tableExist(String tableName) 描述:检查表是否存在

HTableDescripor:描述了表里的列族。
示例
HTableDescripor htd = new HTableDescripor(table);
htd.addFamily(new HColumnDescripor(“family”))
方法
返回值:void 函数:addFamily(HColumnDescripor)描述:添加一个列族
返回值:HColumnDescripor 函数:removeFamily(byte[] colunm)描述:移除一个列族
返回值:byte[] 函数:getName() 描述:获取表的名字
返回值:byte[]数:getValue(byte[] key) 描述:获取属性的值
返回值:void 函数:setValue 描述:设置属性值

HColumnDescription:维护列族里的信息,如版本号,压缩设置,通常在建表或者添加列族时使用,建成后不能修改,只能删除后再重新建立。
示例
HTableDescripor htd = new HTableDescripor(table);
HColumnDescription col = new HColumnDescription(“content:”)
htd.addFamily(col);
方法
返回值:byte[] 函数:getNmae() 描述:获取列族的名字
返回值:byte[] 函数:getValue(byte[] key) 描述:获取对应属性的值
返回值:void 函数:setValue(string key, string value) 描述:设置对应的属性值

HTabele:用来和HBase直接通信的实例,此方法对于更新操作是非线程安全的(不建议使用HTable来更新对象,推荐使用HTablePool)。
示例
HTable table = new HTable(conf, Byte.toBytes(tableName));
ResultScanner scanner = table.getScanner(family);
方法
返回值:void 函数:checkAndPut(byte[] family, byte[] qualifier, byte[] value, Put put) 描述:自动检查row/family/qualifier是否与给定值匹配
返回值:void 函数:close() 描述:释放所有资源或挂起内部缓冲区的更新
返回值:Boolean 函数:exist(Get get) 描述:检查Get实例中的值是否存在于HTable的列中
返回值:Result 函数:get(Get get) 描述:获取指定行的某些单元格对应值
返回值:byte[][] 函数:getEndkeys 描述:获取当前一打开的表的每个区域的结束值
返回值:ResultScanner 函数:getScanner(byte[] family) 描述:获取给定列族的scanner实例
返回值:HTableDescriptor 函数:getTableDescriptor() 描述:获取当前表的HTableDescriptor实例
返回值:byte[] 函数: 描述:getTableName() 描述:获取表名
返回值:static boolean 函数:isTableEnable(HBaseConfiguration conf, string tableName) 描述:检查表是否有效
返回值:void 函数:put(Put put) 描述:向表中添加值

HTablePool:解决Htable线程不安全带方式,这个类是同时维护固定数量的HTable对象的资源池,能够在运行期间复用这些资源。
说明:
1.HtablePool可以自动创建HTable对象,而且对客户端来说是透明的,可以避免多线程的并发修改问题。
2.HTablePool:中的HTable对象之间是公用的Configuration链接的,能够减少网络开销。
HTablePool的使用很简单,通过HTablePool的getTable方法获得HTable对象,然后进行put/get/scan/delete等操作,最后HTablePoold
putTable方法放回HTablePool中。
(HTablePool已经被标记为过时,现在推荐HConnectionManager)

Put:进行数据插入
HTable table = new HTable(conf, Byte。toByte(tableName));
Put p = new Put(brow);
p.add(family,qualifier,value);
table。put(p);

Get:获取行记录
HTable table = new HTable(conf, Byte。toByte(tableName));
Get g = new Get(brow);
table.get(g);//返回result类型

Result:返回结果类型

ResultScanner:Result类型的迭代器

你可能感兴趣的:(备忘)