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.TableNotFoundException;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.regionserver.BloomType;
import org.junit.Before;
import org.junit.Test;
public class Test01 {
static Connection coon = null;
@Before
public static void init() throws IOException{
//构建连接对象
Configuration conf = HBaseConfiguration.create();
coon = ConnectionFactory.createConnection(conf);
conf.set("hbase.zookeeper.quorum", "hadoop1:2181,hadoop2:2181,hadoop3:2181");
}
@Test//創建表
public static void CreateTable() throws IOException{
// 从连接中构造一个DDL操作器
Admin addmin = coon.getAdmin();
//创建一个表定义描述对象
HTableDescriptor hTableDescriptor = new HTableDescriptor(TableName.valueOf("user_info"));
// 创建列族描述对象
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor("base_info");
HColumnDescriptor hColumnDescriptor2 = new HColumnDescriptor("base_info2");
//表描述对象中加入列族描述信息
hTableDescriptor.addFamily(hColumnDescriptor);
hTableDescriptor.addFamily(hColumnDescriptor2);
//用DD操作对象:addmin来建表
addmin.createTable(hTableDescriptor);
addmin.close();
}
@Test//刪除表
public static void dropTable() throws IOException{
Admin admin = coon.getAdmin();
//停用表
admin.disableTable(TableName.valueOf("user_info"));
//刪除表
admin.deleteTable(TableName.valueOf("user_info"));
}
@Test
public static void alterTable() throws TableNotFoundException, IOException{
Admin admin = coon.getAdmin();
//取出舊表定義
HTableDescriptor tableDescriptor = admin.getTableDescriptor(TableName.valueOf("user_info"));
//重新構造列族定義
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor("other_info");
hColumnDescriptor.setBloomFilterType(BloomType.ROW);
//表定義對象加入列祖描述信息
tableDescriptor.addFamily(hColumnDescriptor);
//修改表
admin.modifyTable(TableName.valueOf("user_info"), tableDescriptor);
}
}