Java读写HBase简单例子

几个概念:

  • 表 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");
}

你可能感兴趣的:(Java读写HBase简单例子)