对表的操作
package com.imooc;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
public class HBaseTest {
public static void main(String [] args){
//查看表是否存在
System.out.println(tableExist("student"));
//创建表
System.out.println(createTable("aaa","info"));
//删除表
System.out.println(dropTable("aaa"));
}
/*
判断表是否存在
存在返回true,否则返回false
*/
public static boolean tableExist(String tableName){
Admin admin = HBaseTest.getAdmin();//获取admin对象
boolean flag=false;
try{
flag=admin.tableExists(TableName.valueOf(tableName));//执行命令
}catch(Exception e){
e.printStackTrace();
}finally{
HBaseTest.close(admin,admin.getConfiguration());//关闭对象
return flag;
}
}
/*
创建表
列族可以有多个
创建成功返回true,否则返回false
*/
public static boolean createTable(String tableName,String...cfs) {
if(tableExist(tableName)){//表存在返回false
return false;
}
Admin admin = HBaseTest.getAdmin();//获取admin对象
HTableDescriptor htd = new HTableDescriptor(TableName.valueOf(tableName));//创建表描述器
for(String cf:cfs){//创建列族
HColumnDescriptor hcd=new HColumnDescriptor(cf);//创建列描述器
htd.addFamily(hcd);//添加列到列族
}
try{
admin.createTable(htd);//创建表
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}finally{
HBaseTest.close(admin,admin.getConnection());//关闭对象
}
}
/*
删除表
删除成功返回true,删除失败或表不存在返回false
*/
public static boolean dropTable(String tableName){
if(!tableExist(tableName)){//表不存在返回false
return false;
}
Admin admin = HBaseTest.getAdmin();//获取admin对象
try{
admin.disableTable(TableName.valueOf(tableName));//先禁用表
admin.deleteTable(TableName.valueOf(tableName));//再删除表
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}finally {
HBaseTest.close(admin,admin.getConnection());//关闭对象
}
}
/
//
/*
获取HBase对象的方法
获取成功返回HBase对象,不成功返回null
*/
public static Admin getAdmin(){
Configuration conf = HBaseConfiguration.create();//创建配置项
conf.set("hbase.zookeeper.quorum", "Linux005");//声明配置信息
Connection conn = null;//声明连接对象
Admin admin =null;
try {
conn = ConnectionFactory.createConnection(conf);//获取连接对象
admin = conn.getAdmin();//获取HBase对象
} catch (Exception e) {