几个主要 Hbase API 类和数据模型之间的对应关系:
| java类 | HBase 数据模型 |
|---|---|
| Admin | 数据库(DataBase) |
| HBaseConfiguration | |
| Table | 表(Table) |
| HTableDescriptor | 列簇(Column Family) |
| HColumnDescriptor | |
| Put | 列修饰符(Column Qualifier) |
| Get | |
| Delete | |
| Result | |
| Scan | |
| ResultScanner |
基本增删除改查demo
package com.study.follow.hbase;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;
/**
* @author: honey
* @date: 2020/2/8
*/
public class HbaseDemoTest {
static Configuration conf;
static Connection connection;
static Admin admin;
public static final String ZK_CONNECT_STR="10.211.55.20:2181,10.211.55.21:2181,10.211.55.22:2181";
static {
conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum",ZK_CONNECT_STR);
try {
connection = ConnectionFactory.createConnection(conf);
admin = connection.getAdmin();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 创建表
* @param tableName 表名
* @param family 列簇
* @throws IOException
*/
private static void createTable(String tableName,String[] family) throws IOException {
TableName table= TableName.valueOf(tableName);
if(admin.tableExists(table)){
System.out.println("table exists:【"+tableName+"】");
}else {
HTableDescriptor htableDesc = new HTableDescriptor(table);
for (int i = 0; i < family.length; i++) {
htableDesc.addFamily(new HColumnDescriptor(family[i]));
}
admin.createTable(htableDesc);
System.out.println("create table success");
}
}
/**
* 为表添加数据(适合知道有多少列簇的固定表)
*
* @param tableName
* @param rowKey
* @param column1 第一个列簇列表
* @param value1 第一个列的值列表
* @param column2 第二个列簇列表
* @param value2 第二个列的值列表
*/
private static void addData(String tableName, String rowKey, String[] column1, String[] value1, String[] column2, String[] value2) throws IOException {
// 设置rowkey
Put put = new Put(Bytes.

本文介绍了HBase的Java API,包括基本的增删改查操作,详细讲解了API类与Hbase数据模型的对应关系。

7万+

被折叠的 条评论
为什么被折叠?



