【方法】连接HBase库,并判断某个表是否存在:
private static boolean isTableExist(String tableName) {
//获取配置信息
HBaseConfiguration config = HBaseConfiguration.create();
//连接ZK即可连接到HBase库
config.set("hbase.zookeeper.quorum", "192.168.xxx.xxx");
//创建Connection
Connection connection = ConnectionFactory.createConnection(config);
//创建客户端
Admin admin = connection.getAdmin();
//判断操作
boolean exists = admin.tableExists(TableName.valueOf(tableName));
//关闭连接
admin.close();
return exists;
}
【方法】创建表:
public static void createTable(String tableName, String... cfs){
//判断列族的合法性
if(cfs.length <= 0){
System.out.println("未设置任何列族信息!");
return;
}
//判定表是否存在
if(isTableExist(tableName)){
System.out.println("该表已存在!");
return;
}
//创建表描述器
HTableDescriptor hTableDescriptor = new HTableDescriptor(TableName.valueOf(tableName));
//为表描述器添加列族信息
for(String cf : cfs){
hTableDescriptor.addFamily(new HColumnDescriptor(cf));
}
//创建表的操作(可以把admin客户端对象作为静态属性,在静态代码块中进行赋值,这儿就可以直接用了)
admin.createTable(hTableDescriptor);
}
【方法】删除表:
public static void deleteTable(String tableName){
//判断表是否存在
if(!isTableExist(tableName)){
System.out.println(tableName + "表不存在!");
return;
}
//使表下线
admin.disableTable(TableName.valueOf(tableName));
//删除表
admin.deleteTable(TableName.valueOf(tableName));
}