环境准备
新建项目后,在pom.xml添加依赖,版本与自己hbase版本一致即可
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<version>1.3.1</version>
</dependency>
下载Maven jar包失败的话,会有.lastupdated文件,搜索出来删掉就可以了,下次用IDEA
打开项目的时候会自动下载
导包信息,千万别导错包
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.filter.*;
import org.apache.hadoop.hbase.util.Bytes;
创建静态连接
//创建静态连接
private static Connection conn = null;
静态获取Configuration对象,主机名填写自己的即可
//静态代码块进行初始化
static {
try {
Configuration conf = HBaseConfiguration.create();
//设置zookeeper参数与主机名
conf.set("hbase.zookeeper.quorum","hadoop102,hadoop103,hadoop104");
//设置端口号
conf.set("habse.zookeeper.property.clientPort","2181");
//实例化connection
conn = ConnectionFactory.createConnection(conf);
} catch (IOException e) {
e.printStackTrace();
}
}
创建表,参数为表名与行键
//创建表 表名 列族名
public static void createTable(String tableName,String... families) throws IOException {
//获取admin对象
Admin admin = conn.getAdmin();
try {
//判断表是否存在
if(admin.tableExists(TableName.valueOf(tableName))){
System.out.println("这个表已经存在");
return;
}
//创建表描述器
HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(tableName));
for (String family : families) {
HColumnDescriptor familyDesc = new HColumnDescriptor(family);
desc.addFamily(familyDesc);
}
//添加列族
admin.createTable(desc);
}finally {
admin.close();
}
}
删除表,参数为表名
//删除表操作 表名
public static void dropTable(String tableName) throws IOException {
Admin admin = conn.getAdmin();
try {
if (!admin.tableExists(TableName.valueOf(tableName))){
System.out.println("不存在这个表");
return;
}
//删除表之前 disable操作
admin.disableTable(TableName.valueOf(tableName));
admin.deleteTable(TableName.valueOf(tableName));
}finally {
admin.close();