多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # API 几个相关类与HBase数据模型之间的对应关系 ![](https://box.kancloud.cn/88a8c90e7a73c0bd58c728620b1150fe_404x301.png) ## HBaseConfiguration 关系:`org.apache.hadoop.hbase.HBaseConfiguration` 作用:对HBase进行配置 ![](https://box.kancloud.cn/34f7959d9620e89bc6e552e7aba23857_724x313.png)  用法示例: ~~~ HBaseConfiguration hconfig = new HBaseConfiguration(); hconfig.set("hbase.zookeeper.property.clientPort","2181"); ~~~ 该方法设置了`"hbase.zookeeper.property.clientPort"`的端口号为2181. 一般情况下,HBaseConfiguration会使用构造函数进行初始化,然后在使用其他方法 ## HBaseAdmin 关系:`org.apache.hadoop.hbase.client.HBaseAdmin` 作用:提供了一个接口来管理HBase数据库的表信息。它提供的方法包括:创建表,删除表,列出表项,使表有效或无效,以及添加或删除表列族成员等。 ![](https://box.kancloud.cn/daebcbdae54752c9ec48f295ce787018_724x473.png) 用法示例: ~~~ HBaseAdmin admin = new HBaseAdmin(config); admin.disableTable("tablename") ~~~ ## HTableDescriptor 关系:`org.apache.hadoop.hbase.HTableDescriptor` 作用:包含了表的名字极其对应表的列族 ![](https://box.kancloud.cn/2ba544ce0004d0644bfad1bfd765afc3_532x218.png) 用法示例: ~~~ HTableDescriptor htd = new HTableDescriptor(table); htd.addFamily(new HcolumnDescriptor("family")); ~~~ 在上述例子中,通过一个HColumnDescriptor实例,为HTableDescriptor添加了一个列族:family ## HColumnDescriptor 关系:`org.apache.hadoop.hbase.HColumnDescriptor` 作用:维护着关于列族的信息,例如版本号,压缩设置等。它通常在创建表或者为表添加列族的时候使用。列族被创建后不能直接修改,只能通过删除然后重新创建的方式。列族被删除的时候,列族里面的数据也会同时被删除 ![](https://box.kancloud.cn/abbafc84d78fe0a99deebd9f13f1e31e_481x153.png) 用法示例: ~~~ HTableDescriptor htd = new HTableDescriptor(tablename); HColumnDescriptor col = new HColumnDescriptor("content:"); htd.addFamily(col); ~~~ 此例添加了一个content的列族 ## HTable 关系:`org.apache.hadoop.hbase.client.HTable` 作用:可以用来和HBase表直接通信。此方法对于更新操作来说是非线程安全的 ![](https://box.kancloud.cn/91f72b9d07df45f6ca6162ff5b2a7853_726x507.png) ![](https://box.kancloud.cn/e99727104574178a2f2337851dd41ab8_725x144.png) 用法示例: ~~~ HTable table = new HTable(conf, Bytes.toBytes(tablename)); ResultScanner scanner = table.getScanner(family); ~~~ ## Put 关系:`org.apache.hadoop.hbase.client.Put` 作用:用来对单个行执行添加操作 ![](https://box.kancloud.cn/cac5429b6c7362fee4e6e46f285c0bc3_726x348.png) 用法示例: ~~~ HTable table = new HTable(conf,Bytes.toBytes(tablename)); Put p = new Put(brow);//为指定行创建一个Put操作 p.add(family,qualifier,value); table.put(p); ~~~ ## Get 关系:`org.apache.hadoop.hbase.client.Get` 作用:用来获取单个行的相关信息 ![](https://box.kancloud.cn/d02942f4cb1f96dcf76d5bfce373f34c_727x191.png) 用法示例: ~~~ HTable table = new HTable(conf, Bytes.toBytes(tablename)); Get g = new Get(Bytes.toBytes(row)); ~~~ ## Result 关系:`org.apache.hadoop.hbase.client.Result` 作用:存储Get或者Scan操作后获取表的单行值。使用此类提供的方法可以直接获取值或者各种Map结构(key-value对) ![](https://box.kancloud.cn/e07d82545e5f953e6a8ece63d9f10d85_728x235.png) ## ResultScanner 关系:Interface 作用:客户端获取值的接口 ![](https://box.kancloud.cn/45a7e437f1e4e31fc4fd305fdb24f224_383x115.png)