public class HBaseDDL {标签:建表,String,admin,创建,空间,命名,HBase,public From: https://www.cnblogs.com/csj-717/p/16725371.html
//声明一个静态属性
static public Connection conn = HBaseConnection2.conn;
/**
* 创建命名空间
*
* @param namespcae 命名空间名称
*/
public static void createNamespace(String namespcae) throws IOException {
//1. 获取admin
Admin admin = conn.getAdmin();
//2.调用方法创建命名空间
//代码相对shell更加底层 所以shell能够实现的功能 代码一定能实现
//所以要填写完整的命名空间描述
//2.1 创建命名空间描述建造者
NamespaceDescriptor.Builder builder = NamespaceDescriptor.create(namespcae);
//2.2 给命名空间添加需求
builder.addConfiguration("user", "Superchen");
//2.3 使用builder构造出对应的添加完参数的对象 完成创建
admin.createNamespace(builder.build());
//3. 关闭admin
admin.close();
}
/**
* +
*
* @param namespace 命名空间名称
* @param tableName 表格名称
* @param columnFamilies 列族名称 可以有多个
*/
public static void createTable(String namespace, String tableName, String... columnFamilies) throws IOException {
//1. 获取admin
Admin admin = conn.getAdmin();
//2. 创建表格
//2.1 创建表格描述的建造者
TableDescriptorBuilder tableDescriptorBuilder = TableDescriptorBuilder.newBuilder(TableName.valueOf(namespace, tableName));
//2.2 添加参数
for (String columnFamily : columnFamilies) {
//2.3 创建列族描述的建造者
ColumnFamilyDescriptorBuilder columnFamilyDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(columnFamily));
//2.4 对应当前的列族添加参数
//添加版本参数
columnFamilyDescriptorBuilder.setMaxVersions(5);
//2.5 创建添加完参数的列族描述
tableDescriptorBuilder.setColumnFamily(columnFamilyDescriptorBuilder.build());
}
//2.3创建对应的表格描述
admin.createTable(tableDescriptorBuilder.build());
//3. 关闭admin
admin.close();
}
//------------------------------------------------------------------------------------------------------------------
public static void main(String[] args) throws IOException {
//创建命名空间
// createNamespace("test1");
// HBaseConnection2.closeConnection();
//创建表格
createTable("test1", "Contract", "info");
HBaseConnection2.closeConnection();
}
}