public class HbaseDDL {
public static Connection connection = DButil.getConnection();
//创建命名空间
/**
* 创建命名空间
* @param namespace 命名空间名称
*/
public static void Creatnamespace(String namespace){
//获取admin
Admin admin = null;
try {
admin = connection.getAdmin();
} catch (IOException e) {
e.printStackTrace();
}
//2调用方法创建命名空间
//2.1创建命名空间描述的建造者 =>设计师
NamespaceDescriptor.Builder builder = NamespaceDescriptor.create(namespace);
//2.2给建造者添加需求
builder.addConfiguration("user","baigeihan");
//2.3使用builder构造出特定的对象
try {
admin.createNamespace(builder.build());
} catch (IOException e) {
System.out.println("命名空间已经存在");
e.printStackTrace();
}
//关闭admin
try {
admin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 判断表格是否存在
* @param namespace 命名空间名称
* @param tablename 表格名称
* @return 是否存在
*/
public static boolean isTableExists(String namespace,String tablename) throws IOException {
//1.创建admin
Admin admin = connection.getAdmin();
//2.使用方法判断表格是否存在
boolean b = false;
try {
b = admin.tableExists(TableName.valueOf(namespace, tablename));
} catch (IOException e) {
e.printStackTrace();
}
//3.关闭连接
admin.close();
return b;
}
/**
* 创建表格
* @param namespace 命名空间
* @param tablename 表格名称
* @param columnFamiles 列族
*/
public static void Createtable(String namespace,String tablename,String... columnFamiles) throws IOException {
//判断列族个数
if(columnFamiles.length == 0){
System.out.println("列族至少要有一个");
return;
}
//判断表哥是否存在
if (isTableExists(namespace,tablename)){
System.out.println("表格已经存在");
return;
}
//1.获取admim
Admin admin = connection.getAdmin();
//2.调用方法创建表格
//2.1 创建表格描述的建造者
TableDescriptorBuilder tableDescriptorBuilder =
TableDescriptorBuilder.newBuilder(TableName.valueOf(namespace, tablename));
//2.2添加参数
for(String rolumnFamily : columnFamiles){
//创建列族的描述者
ColumnFamilyDescriptorBuilder columnFamilyDescriptorBuilder =
ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(rolumnFamily));
//2.4对应当前列族添加参数
//添加版本参数
columnFamilyDescriptorBuilder.setMaxVersions(5);
//创建添加完参数的的列族描述
tableDescriptorBuilder.setColumnFamily(columnFamilyDescriptorBuilder.build());
}
//创建对应的表格描述
try {
admin.createTable(tableDescriptorBuilder.build());
} catch (IOException e) {
System.out.println("表格已经存在");
e.printStackTrace();
}
admin.close();
}
public static void main(String[] args) throws IOException {
Createtable("one","student","info","msg");
}
}