TestHBase API
package a.b.hbase;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.HBaseAdmin;
public class TestHBase {
//hbase 配置
static Configuration configuration=null;
static{
//因为hbase的元数据等信息都是存储在zk里面,所以这块必须要有zk的地址注册
configuration=HBaseConfiguration.create();
// zookeeper地址
configuration.set("hbase.zookeeper.quorum", "192.168.22.208,192.168.22.209,192.168.22.210");
// zookeeper端口
configuration.set("hbase.zookeeper.property.clientPort", "2181");
}
@SuppressWarnings("deprecation")
public void createTable(String tableName,String [] families) {
HBaseAdmin hBaseAdmin;
try {
hBaseAdmin=new HBaseAdmin(configuration);
//判断表是否存在,如果表存在则打印存在(删除),如果不存在则创建
if(hBaseAdmin.tableExists(tableName)){
System.out.println("table exist");
// hBaseAdmin.disableTable(tableName.getBytes());
// hBaseAdmin.deleteTable(tableName);
}else{
//创建表
//1.HTableDescriptor表结构信息 2.HColumnDescriptor 列族信息 3.hBaseAdmin.createTable(HTableDescriptor)创建表
TableName tableName2=TableName.valueOf(tableName);
HTableDescriptor htd=new HTableDescriptor(tableName2);
for(int i=0;i<families.length;i++){
HColumnDescriptor hcd=new HColumnDescriptor(families[i]);
htd.addFamily(hcd);
}
hBaseAdmin.createTable(htd);
System.out.println(tableName + "---table success");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
TestHBase th=new TestHBase();
//调用建表语句
String [] families={"user_info","extra_info"};
String tableName="test_user";
th.createTable(tableName, families);
}
}