# 创建 Admin 对象
private static Connection connection = null; | |
private static Admin admin = null; | |
static { | |
try { | |
// 获取配置文件信息 | |
Configuration configuration = HBaseConfiguration.create(); | |
configuration.set("hbase.zookeeper.quorum", "hadoop02,hadoop03,hadoop04"); | |
// 创建连接对象 | |
connection = ConnectionFactory.createConnection(configuration); | |
// 创建 Admin 对象 | |
admin = connection.getAdmin(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} |
# 判断表是否存在
private static boolean isTableExist(String tableName) throws IOException { | |
// 判断表是否存在 | |
boolean exists = admin.tableExists(TableName.valueOf(tableName)); | |
// 返回结果 | |
return exists; | |
} |
# 创建表
private static void createTable(String tableName, String... cfs) throws IOException { | |
// 判断是否存在列族信息 | |
if (cfs.length <= 0) { | |
System.out.println("请设置列族信息!"); | |
return; | |
} | |
// 判断表是否存在 | |
if (isTableExist(tableName)) { | |
System.out.println(tableName + " 表已经存在"); | |
return; | |
} | |
// 创建表描述其 | |
HTableDescriptor hTableDescriptor = new HTableDescriptor(TableName.valueOf(tableName)); | |
// 循环添加列族信息 | |
for (String cf : cfs) { | |
// 创建列族描述器 | |
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(cf); | |
// 添加具体的列族信息 | |
hTableDescriptor.addFamily(hColumnDescriptor); | |
} | |
// 创建表 | |
admin.createTable(hTableDescriptor); | |
} |
# 删除表
private static void dropTable(String tableName) throws IOException { | |
// 判断表是否存在 | |
if (!isTableExist(tableName)) { | |
System.out.println(tableName + "表不存在"); | |
return; | |
} | |
// 使表下线 | |
admin.disableTable(TableName.valueOf(tableName)); | |
// 删除表 | |
admin.deleteTable(TableName.valueOf(tableName)); | |
} |
# 创建命名空间
private static void createNameSpace(String ns) { | |
// 创建命名空间描述器 | |
NamespaceDescriptor namespaceDescriptor = NamespaceDescriptor.create(ns).build(); | |
// 创建命令空间 | |
try { | |
admin.createNamespace(namespaceDescriptor); | |
} catch(NamespaceExistException e) { | |
System.out.println(ns + "命名空间已存在"); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} |
# 关闭资源
private static void close() { | |
if (admin != null) { | |
try { | |
admin.close(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} | |
if (connection != null) { | |
try { | |
connection.close(); | |
} catch (IOException e) { | |
e.printStackTrace(); | |
} | |
} | |
} |
# 测试
public static void main(String[] args) throws IOException { | |
// 测试表是否存在 | |
// System.out.println(isTableExist("stu")); | |
// 创建表测试 | |
createTable("yain:stu", "info"); | |
// 删除表测试 | |
// dropTable("stu"); | |
// System.out.println(isTableExist("stu")); | |
// 创建命名空间测试 | |
// createNameSpace("yain"); | |
// 关闭资源 | |
close(); | |
} |