API

几个相关类与HBase数据模型之间的对应关系

image.png

HBaseConfiguration

关系:org.apache.hadoop.hbase.HBaseConfiguration
作用:对HBase进行配置

image.png

用法示例:

  1. HBaseConfiguration hconfig = new HBaseConfiguration();
  2. hconfig.set("hbase.zookeeper.property.clientPort","2181");

该方法设置了"hbase.zookeeper.property.clientPort"的端口号为2181.
一般情况下,HBaseConfiguration会使用构造函数进行初始化,然后在使用其他方法

HBaseAdmin

关系:org.apache.hadoop.hbase.client.HBaseAdmin
作用:提供了一个接口来管理HBase数据库的表信息。它提供的方法包括:创建表,删除表,列出表项,使表有效或无效,以及添加或删除表列族成员等。

image.png

用法示例:

  1. HBaseAdmin admin = new HBaseAdmin(config);
  2. admin.disableTable("tablename")

HTableDescriptor

关系:org.apache.hadoop.hbase.HTableDescriptor
作用:包含了表的名字极其对应表的列族

image.png

用法示例:

  1. HTableDescriptor htd = new HTableDescriptor(table);
  2. htd.addFamily(new HcolumnDescriptor("family"));

在上述例子中,通过一个HColumnDescriptor实例,为HTableDescriptor添加了一个列族:family

HColumnDescriptor

关系:org.apache.hadoop.hbase.HColumnDescriptor
作用:维护着关于列族的信息,例如版本号,压缩设置等。它通常在创建表或者为表添加列族的时候使用。列族被创建后不能直接修改,只能通过删除然后重新创建的方式。列族被删除的时候,列族里面的数据也会同时被删除

image.png

用法示例:

  1. HTableDescriptor htd = new HTableDescriptor(tablename);
  2. HColumnDescriptor col = new HColumnDescriptor("content:");
  3. htd.addFamily(col);

此例添加了一个content的列族

HTable

关系:org.apache.hadoop.hbase.client.HTable
作用:可以用来和HBase表直接通信。此方法对于更新操作来说是非线程安全的

image.png

image.png

用法示例:

  1. HTable table = new HTable(conf, Bytes.toBytes(tablename));
  2. ResultScanner scanner = table.getScanner(family);

Put

关系:org.apache.hadoop.hbase.client.Put
作用:用来对单个行执行添加操作

image.png

用法示例:

  1. HTable table = new HTable(conf,Bytes.toBytes(tablename));
  2. Put p = new Put(brow);//为指定行创建一个Put操作
  3. p.add(family,qualifier,value);
  4. table.put(p);

Get

关系:org.apache.hadoop.hbase.client.Get
作用:用来获取单个行的相关信息

image.png

用法示例:

  1. HTable table = new HTable(conf, Bytes.toBytes(tablename));
  2. Get g = new Get(Bytes.toBytes(row));

Result

关系:org.apache.hadoop.hbase.client.Result
作用:存储Get或者Scan操作后获取表的单行值。使用此类提供的方法可以直接获取值或者各种Map结构(key-value对)

image.png

ResultScanner

关系:Interface
作用:客户端获取值的接口

image.png