知识回顾
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
}
代码:
public static void main(String[] args) {// TODO Auto-generated method stub//获取配置文件Configuration config = HBaseConfiguration.create();config.set("hbase.zookeeper.quorum", "192.168.43.184");config.set("hbase.master","localhost:16010");config.set("hbase.zookeeper.property.clientPort", "2181");try {//创建链接Connection connection = ConnectionFactory.createConnection(config);Admin admin = connection.getAdmin();//说明:在下面几个操作中,上面的代码是一样的,于是我就没有再次重复写。//列出表HTableDescriptor[] tableDescriptor = admin.listTables();for (int i=0; i<tableDescriptor.length; i++) {System.out.println(tableDescriptor[i].getNameAsString());}admin.close();connection.close();
运行结果:
hbase结果:
禁用表
代码
核心代码:
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结果
hbase结果
启用表
代码
核心代码: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结果
hbase结果
添加列族
代码
核心代码:
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结果
hbase结果
删除列族
代码
核心代码
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结果
hbase结果

验证表存在
代码:
Boolean Bool = admin.tableExists(TableName.valueOf(“lmj”));验证那个lmj这个表是否存在
Boolean Bool = admin.tableExists(TableName.valueOf("lmj"));
System.out.println(Bool);
admin.close();
connection.close();
idea结果
hbase结果

删除表
代码:
核心代码:
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结果
hbase结果

