知识回顾

RowKey是主键
Column Family 列族 (列族是放列的地方)
Cell 单元,放数据的地方,cell中的数据是没有类型的,全部都是字节码类型存储的
关键字:无类型,字节码
Time Stamp 时间戳
Hbase 通过rowKey 和columns 确定的一个存储单元称为cell,每个cell都保存这同一份数据的多个版本,版本通过时间戳来做索引,时间戳是64为整型的

创建表

使用HBaseAdmin类中的createTable()方法,可以在管理模式执行创建表
admin.creatTable(table)

列出表

在类HBaseAdmin中有一个方法叫listTables(),列出HBase中所有的表的列表。这个方法返回HTableDescripor对象的数组。

禁用表

要验证一个表是否被禁用,使用isTableDisabled()方法和disable Table()方法禁用一个表。这些方法属于HbaseAdmin类

启动表

要验证一个表是否被启用,使用isTableEnabled()方法,并且使用enable Table()方法使一个表启用。这些方法属于HBaseAdmin类

删除列族

可以使用HBaseAdmin类中的deleteColumn()方法删除列族

验证表存在

可以使用HBaseAdmin类中的tableExists()方法验证表HBase中是否存在。返回bool布尔类型的值

删除表

可以使用HBaseAdmin类中的deleteTable()方法删除表

插入数据

可以使用Put类的addcolumn()方法将数据插入到HBase。可以使用HTable类中的put()方法保存数据

读取数据

与put()方法对应Put类相似,get()方法也有对应的Get类

删除数据

可以使用HTable类中的delete()方法删除HBase表数据

列出表

核心操作:
HTableDescriptor[] tableDescriptor = admin.listTables();
for (int i=0; i System.out.println(tableDescriptor[i].getNameAsString());
}

代码:

  1. public static void main(String[] args) {
  2. // TODO Auto-generated method stub
  3. //获取配置文件
  4. Configuration config = HBaseConfiguration.create();
  5. config.set("hbase.zookeeper.quorum", "192.168.43.184");
  6. config.set("hbase.master","localhost:16010");
  7. config.set("hbase.zookeeper.property.clientPort", "2181");
  8. try {
  9. //创建链接
  10. Connection connection = ConnectionFactory.createConnection(config);
  11. Admin admin = connection.getAdmin();
  12. //说明:在下面几个操作中,上面的代码是一样的,于是我就没有再次重复写。
  13. //列出表
  14. HTableDescriptor[] tableDescriptor = admin.listTables();
  15. for (int i=0; i<tableDescriptor.length; i++) {
  16. System.out.println(tableDescriptor[i].getNameAsString());
  17. }
  18. admin.close();
  19. connection.close();

运行结果:

image.png

hbase结果:

image.png

禁用表

代码

核心代码:
Boolean b = admin.isTableDisabled(TableName.valueOf(“lmj”));判断!b是否被禁用了
如果判断没有禁用则禁用这个表

            Boolean b = admin.isTableDisabled(TableName.valueOf("lmj"));
            System.out.println(b);
            if(!b) {
                admin.disableTable(TableName.valueOf("lmj"));
                System.out.println("Table disabled");
            }
            admin.close();
            connection.close();

idea结果

image.png

hbase结果

image.png

启用表

代码

核心代码:Boolean bool = admin.isTableEnabled(TableName.valueOf(“test”));判断这个表是否被启动
如果没有被启动就启动这个表

            Boolean bool = admin.isTableEnabled(TableName.valueOf("test"));
            System.out.println(bool);
            if(!bool) {
                admin.enableTable(TableName.valueOf("test"));
                System.out.println("Table enabled");
            }
            admin.close();
            connection.close();

idea结果

image.png

hbase结果

image.png

添加列族

代码

核心代码:
HColumnDescriptor columnDescriptor = new HColumnDescriptor(“info1”);
admin.addColumn(TableName.valueOf(“lmj”), columnDescriptor);

            HColumnDescriptor columnDescriptor = new HColumnDescriptor("info1");
            admin.addColumn(TableName.valueOf("lmj"), columnDescriptor);
            System.out.println("Column added");
            admin.close();
            connection.close();

idea结果

image.png

hbase结果

image.png

删除列族

步骤:先禁用表,再删除列族,再启动表

代码

核心代码
admin.disableTable(TableName.valueOf(“lmj”)); 禁用lmj这个表
admin.deleteColumn(TableName.valueOf(“lmj”), “info1”.getBytes());删除lmj数据库里面的info1
admin.enableTable(TableName.valueOf(“lmj”));启动lmj这个表

            admin.disableTable(TableName.valueOf("lmj"));
            admin.deleteColumn(TableName.valueOf("lmj"), "info1".getBytes());
            System.out.println("Column deleted");
            admin.enableTable(TableName.valueOf("lmj"));
            admin.close();
            connection.close();

idea结果

image.png

hbase结果

image.png

验证表存在

代码:

Boolean Bool = admin.tableExists(TableName.valueOf(“lmj”));验证那个lmj这个表是否存在

            Boolean Bool = admin.tableExists(TableName.valueOf("lmj"));
            System.out.println(Bool);
            admin.close();
            connection.close();

idea结果

image.png

hbase结果

image.png

删除表

代码:

核心代码:
admin.disableTable(TableName.valueOf(“test”));删除之前先禁用表
admin.deleteTable(TableName.valueOf(“test”));删除表

admin.disableTable(TableName.valueOf("test"));
admin.deleteTable(TableName.valueOf("test"));
System.out.println("Table deleted");
admin.close();
connection.close();

idea结果

image.png

hbase结果

image.png