版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxg117/article/details/84105817
几个概念:
- 表 Table。 表由行和列组成。
- 行 Row。每行都由 Row Key 来标识。
- 列族 ColumnFamily。表由列族组成。
- 列限定符 Qualifier。也就是列,每个列族由多个列组成。列可以动态创建
- 单元格。通过行,列族和列限定符定位一个单元格
- 时间戳 。每个单元格都有多个版本。
创建表的时候需要指定表的名字,以及所有的列族。
插入数据到HBase时,需要指定表,行键,列族,列限定符,以及单元格的数据。
查找时,需要指定表和行键,也可以指定列族和列限定符。
下载并启动HBase,然后运行下面代码。
public static void main(String[] args) throws Exception {
Configuration conf = HBaseConfiguration.create();
Connection cn = ConnectionFactory.createConnection(conf);
Admin admin = cn.getAdmin();
String columnFamily= "score";
String columnQualifier = "math";
String row = "Andy";
//Create
TableName tableName = TableName.valueOf("test_table");
ColumnFamilyDescriptor family = ColumnFamilyDescriptorBuilder.of(columnFamily);
TableDescriptor desc = TableDescriptorBuilder.newBuilder(tableName).setColumnFamily(family).build();
admin.createTable(desc);
System.out.println("Create done");
//Insert
Table table = cn.getTable(tableName);
Put put = new Put(row.getBytes());
put.addColumn(columnFamily.getBytes(), columnQualifier.getBytes(), "100".getBytes());
table.put(put);
table.close();
System.out.println("Insert done");
//Get
table = cn.getTable(tableName);
Get get = new Get(row.getBytes());
get.addColumn(columnFamily.getBytes(), columnQualifier.getBytes());
Result result = table.get(get);
table.close();
System.out.println("Get result: " + new String(result.getValue(columnFamily.getBytes(), columnQualifier.getBytes())));
//Delete table
admin.disableTable(tableName);
admin.deleteTable(tableName);
System.out.println("Delete table");
}