hbase创建表格的API,使用Java编写API让我们操作表格更加方便快捷。
创建表格的流程图:
编写代码:
public static void createTables(String namespace,String tablename,String... columnFamilys) throws IOException { //1.获取admin Admin admin = connection.getAdmin(); //2.调用方法创建表格 //2.1创建表格的建造者 TableDescriptorBuilder tableDescriptorBuilder = TableDescriptorBuilder.newBuilder(TableName.valueOf(namespace,tablename)); //2.2添加参数的建造者 for (String columnFamily : columnFamilys) { ColumnFamilyDescriptorBuilder columnFamilyDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(columnFamily)); //2.3添加版本参数 columnFamilyDescriptorBuilder.setMaxVersions(5); //2.4创建参数的列族的信息 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 { //创建atguigu命名空间// createNamespace("atguigu"); // System.out.println(isTableExists("haolin","student")); //测试创建表格 createTables("atguigu","student","info1","info2"); System.out.println("判断是否运行到此处"); //关闭HBASE连接 HbaseConnection.closeconnection(); }}
运行结果:
但是在当前代码下,因为列族是可变参数,当没有设置列族,那么他就会报错,那么之前就需要判断是否至少有一个列族。
if(columnFamily.length==0){System.out.println("创建表格至少要存在一个列族!!!!");return;}
这样一来就增加了我们API的健壮性。