1 package com.bawei.hbase;
 2 
 3 import org.apache.hadoop.conf.Configuration;
 4 import org.apache.hadoop.hbase.HBaseConfiguration;
 5 import org.apache.hadoop.hbase.HColumnDescriptor;
 6 import org.apache.hadoop.hbase.HTableDescriptor;
 7 import org.apache.hadoop.hbase.TableName;
 8 import org.apache.hadoop.hbase.client.Admin;
 9 import org.apache.hadoop.hbase.client.Connection;
10 import org.apache.hadoop.hbase.client.ConnectionFactory;
11 
12 import java.io.IOException;
13 
14 public class HBaseUtil {
15     //创建连接 静态的单例
16     private static Connection connection = null;
17 
18     //初始化connection
19     static {
20         //创建配置对象
21         Configuration conf = HBaseConfiguration.create();
22         //配zookeeper的主机名
23         conf.set("hbase.zookeeper.quorum", "hadoop102,hadoop103,hadoop104");
24         //设置端口的参数
25         conf.set("hbase.zookeeper.property.clientPort", "2181");
26         //实例化connection
27         try {
28             connection = ConnectionFactory.createConnection(conf);
29         } catch (IOException e) {
30             e.printStackTrace();
31         }
32 
33     }
34 
35     //创建表
36     private static void createTable(String tableName, String... families) throws IOException {
37 
38         //创建表先要获得admin对象
39         Admin admin = connection.getAdmin();
40 
41         try {
42             //判断表是否存在
43             if (admin.tableExists(TableName.valueOf(tableName))) {
44                 System.out.println("table:" + tableName + "exists!");
45                 return;
46             }
47             //创建表的描述器
48             HTableDescriptor desc = new HTableDescriptor(TableName.valueOf(tableName));
49             //添加列族的信息 因为列族可能是多个,所以需要遍历families
50             for (String family : families) {
51                 //创建列族的描述器
52                 HColumnDescriptor familyDesc = new HColumnDescriptor(family);
53                 //需要传入列族的描述器
54                 desc.addFamily(familyDesc);
55             }
56             //创建表的方法 需要表的描述器
57             admin.createTable(desc);
58         } finally {
59             admin.close();
60         }
61     }
62 
63 
64     public static void main(String[] args) throws IOException {
65         createTable("user_info", "info", "data");
66     }
67 }