1.连接hbase的(获取hadoop与zookeeper相关配置)获取对DDL表进行操作的HMaster对象
2.new HTableDescriptor传入表名创建表对象
3.new HColumnDescriptor设定一个列簇创建对象;一个表在创建时至少指定一个列簇
4.通过addFamily将列簇添加到表中
5.此使表还没有执行,对表真正进行执行的是HMaster,因此通过HMaster对象调用createrTable将表创建出来
6.关闭通道
示例代码:
private HConnection conn; private HBaseAdmin hBaseAdmin; /** * 连接hbase * */ @Before public void clientHbase(){ try { //获取hadoop相关配置 Configuration conf = new Configuration(); //获取zookeeper相关配置 conf.set("hbase.zookeeper.quorum","master:2181,node1:2181,node2:2181"); conn = HConnectionManager.createConnection(conf); //对DDL表进行操作, hBaseAdmin = new HBaseAdmin(conf); } catch (IOException e) { e.printStackTrace(); } System.out.println("建立连接成功"+conn+",获取master成功"+hBaseAdmin); }
/** * 创建表 * */ @Test public void creadTable(){ //创建一个表并设置名字 HTableDescriptor s_demo1 = new HTableDescriptor("s_demo1"); //创建表至少指定一个列簇 HColumnDescriptor info = new HColumnDescriptor("info"); //将列簇添加到表中 s_demo1.addFamily(info); //表的执行由master执行,这里的master对象是hBaseAdmin try { hBaseAdmin.createTable(s_demo1); } catch (IOException e) { e.printStackTrace(); } System.out.println(Bytes.toString(s_demo1.getName())+"表创建成功"); }
/** * 关闭通道 * */ @After public void closeTong(){ if (conn!=null){ try { conn.close(); } catch (IOException e) { e.printStackTrace(); } } System.out.println("conn已关闭" ); if (hBaseAdmin!=null){ try { hBaseAdmin.close(); } catch (IOException e) { e.printStackTrace(); } } System.out.println("master已关闭"); } }