From eefcadd7a44b485564b9b27d62407b861c806607 Mon Sep 17 00:00:00 2001 From: fly6516 Date: Wed, 26 Mar 2025 10:38:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BC=98=E5=8C=96=E8=A1=A8=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=B5=81=E7=A8=8B=E5=B9=B6=E6=B7=BB=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E8=BF=9E=E6=8E=A5=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在创建表之前检查表是否存在,如果存在则禁用并删除 - 新增 MyConnect 类用于管理 HBase 连接 - 优化了表创建过程,使其更加健壮 --- src/main/java/HBaseEmpManager.java | 12 +++++++-- src/main/java/MyConnect.java | 40 ++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 src/main/java/MyConnect.java diff --git a/src/main/java/HBaseEmpManager.java b/src/main/java/HBaseEmpManager.java index 80e79f6..b3a2923 100644 --- a/src/main/java/HBaseEmpManager.java +++ b/src/main/java/HBaseEmpManager.java @@ -60,9 +60,17 @@ public class HBaseEmpManager { // 创建 HBase 表 private static void createTable() throws IOException { TableName tableName = TableName.valueOf(TABLE_NAME); + // 检查表格是否存在 if (admin.tableExists(tableName)) { - System.out.println("Table emp1520 already exists."); - return; + System.out.println("表 " + TABLE_NAME + " 已经存在,准备禁用并删除..."); + + // 禁用表格 + admin.disableTable(tableName); + System.out.println("表 " + TABLE_NAME + " 已禁用。"); + + // 删除表格 + admin.deleteTable(tableName); + System.out.println("表 " + TABLE_NAME + " 已删除。"); } HTableDescriptor tableDescriptor = new HTableDescriptor(tableName); diff --git a/src/main/java/MyConnect.java b/src/main/java/MyConnect.java new file mode 100644 index 0000000..834d56b --- /dev/null +++ b/src/main/java/MyConnect.java @@ -0,0 +1,40 @@ +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.*; +import org.apache.hadoop.hbase.client.*; +import java.io.IOException; +public class MyConnect{ + public static Configuration configuration; + public static Connection connection; + public static Admin admin; + public static void main(String[] args)throws IOException{ + init(); + close(); + } + //建立连接 + public static void init(){ + //根据 hbase-site.xml文件初始化Configuration 对象 + configuration = HBaseConfiguration.create(); + try{ + //根据 Configuration对象初始化Connection 对象 + connection = ConnectionFactory.createConnection(configuration); + //获取Admin 对象实例 + admin = connection.getAdmin(); + }catch (IOException e){ + e.printStackTrace(); + } + System.out.println("Connect to HBase Successfully!"); + } + //关闭连接 + public static void close(){ + try{ + if(admin != null){ + admin.close(); + } + if(null != connection){ + connection.close(); + } + }catch (IOException e){ + e.printStackTrace(); + } + } +} \ No newline at end of file