首先需要将hbase安装目录下lib文件夹中的jar文件全部加入到项目类路径下,另外还需要将hadoop相关jar包也加入。
这里需要用到的主要API介绍一下。
Configuration:HBase参数配置对象。
Connection:HBase连接对象,通过ConnectionFactory工厂方法创建,需要传入一个参数配置对象。
Admin:通过Admin实现创建表,删除表操作。
TableName:取代字符串形式的tableName。
Table:使用Table可以新增数据put(),查询数据getScanner()。
下面通过代码来演示如何做常规的操作:
1、初始化配置,构建一个HBase连接器对象。
private static Connection connection;
static{
Configuration config = HBaseConfiguration.create();
config.set("hbase.rootdir", "hdfs://server:9000/hbase");
config.set("hbase.zookeeper.quorum", "server:2181");
try {
connection = ConnectionFactory.createConnection(config);
} catch (IOException e) {
e.printStackTrace();
}
}
2、建表。
public static boolean createTable(String tableName,String columnFamily){
boolean success = false;
Admin admin = null;
TableName tn = TableName.valueOf(tableName);
try {
admin = connection.getAdmin();
if(!admin.tableExists(tn)){
HTableDescriptor desc = new HTableDescriptor(tn);
desc.addFamily(new HColumnDescriptor(columnFamily.getBytes()));
admin.createTable(desc);
System.out.println("table ["+tableName+"] create ok.");
success = true;
}else{
System.out.println("table ["+tableName+"] already exists.");
success = false ;
}
} catch (Exception e) {
success = false ;
}
return success;
}
3、插入数据。
public static boolean putData(String tableName,String rowKey,String columnFamily,String qualifier,Object value){
boolean success = false;
Admin admin = null;
TableName table = TableName.valueOf(tableName);
try {
admin = connection.getAdmin();
if(admin.tableExists(table)){
Table t = connection.getTable(table);
Put put = new Put(rowKey.getBytes());
put.addColumn(columnFamily.getBytes(), qualifier.getBytes(), value.toString().getBytes());
t.put(put);
success = true;
}else{
System.out.println("table ["+tableName+"] does not exist.");
success = false;
}
} catch (Exception e) {
success = false;
}
return success;
}
4、查看数据。
@SuppressWarnings("deprecation")
public static void getValueByTable(String tableName){
TableName tn = TableName.valueOf(tableName.getBytes());
try{
Table