1.获取连接
在java中连接HBase集群,只需要提供HMaster服务的IP地址、端口号、HBase在HDFS上的根目录地址、Zookeeper集群地址即可。使用ConnectionFactory静态create方法即可。
/**
* 配置ss
*/
static Configuration config = null;
private Connection connection = null;
private Table table = null;
@Before
public void init() throws Exception {
config = HBaseConfiguration.create();// 配置
config.set("hbase.master", "master:16000");// 指定HMaster
config.set("hbase.rootdir", "hdfs://master:8020/hbase");// 指定HBase在HDFS上的存储路径
config.set("hbase.zookeeper.quorum", "slave1,slave2,slave3");// zookeeper地址
config.set("hbase.zookeeper.property.clientPort", "2181");// zookeeper端口
connection = ConnectionFactory.createConnection(config); //获取连接
table = connection.getTable(TableName.valueOf("dept"));
}
2.新建表
新建表时,需要获取Admin,即获取HBase管理客户端。获取后,直接调用createTable即可。
/**
* 创建数据库表dept,并增加列族info和subdept
*
* @throws Exception
*/
@Test
public void createTable() throws Exception {
// 创建表管理类
HBaseAdmin admin = new HBaseAdmin(config); // hbase表管理
// 创建表描述类
TableName tableName = TableName.valueOf("dept"); // 表名称
HTableDescriptor desc = new HTableDescriptor(tableName);
// 创建列族的描述类
HColumnDescriptor family = new HColumnDescriptor("info"); // 列族
// 将列族添加到表中
desc.addFamily(family);
HColumnDescriptor family2 = new HColumnDescriptor("subdept"); // 列族
// 将列族添加到表中
desc.addFamily(family2);
// 创建表
admin.createTable(desc); // 创建表
System.out.println("创建表成功!");
}
3.删除表
删除表跟新建表相似&