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.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 DropAlter {
Connection conn = null;
@Before
public void getConn() throws Exception {
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "hadoop1:2181,hadoop2:2181:hadoop3:2181");
conn = ConnectionFactory.createConnection(conf);
}
@Test
public void testDrop() throws Exception {
Admin admin = conn.getAdmin();
//如果要删除表,必须先将其停用
admin.disableTable(TableName.valueOf("APItest"));
admin.deleteTable(TableName.valueOf("APItest"));
//关闭资源
admin.close();
conn.close();
}
//修改表定义--添加一个列族
@Test
public void testAlter() throws Exception {
Admin admin = conn.getAdmin();
//取出旧的表定义信息
HTableDescriptor tableDescriptor = admin.getTableDescriptor(TableName.valueOf("user_info"));
//新构造一个列族定义
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor("othre");
hColumnDescriptor.setBloomFilterType(BloomType.ROWCOL); //设置改列族的布隆过滤器类型
//将列族定义信息添加到表对象中
tableDescriptor.addFamily(hColumnDescriptor);
//将修改过的表定义交给admin去提交
admin.modifyTable(TableName.valueOf("user_info"), tableDescriptor);
admin.close();
conn.close();
}
}