From 99161410f3162380e3d8d17bd45f539503d0bf29 Mon Sep 17 00:00:00 2001 From: dev_xulongjin Date: Fri, 11 Apr 2025 10:24:31 +0800 Subject: [PATCH] =?UTF-8?q?feat(hbase-lesson):=20=E6=B7=BB=E5=8A=A0=202025?= =?UTF-8?q?0328=20HBase=20DDL=20=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除了原有的 Main 类 - 新增 task_DDL 类,实现 HBase 数据库的 DDL 操作- 在 pom.xml 中添加了 hbase-common 依赖 --- hbase-lesson/pom.xml | 12 ++++ .../src/main/java/cn/vscoder/Main.java | 7 --- .../src/main/java/date_20250328/task_DDL.java | 60 +++++++++++++++++++ 3 files changed, 72 insertions(+), 7 deletions(-) delete mode 100644 hbase-lesson/src/main/java/cn/vscoder/Main.java create mode 100644 hbase-lesson/src/main/java/date_20250328/task_DDL.java diff --git a/hbase-lesson/pom.xml b/hbase-lesson/pom.xml index 37df84c..40412c5 100644 --- a/hbase-lesson/pom.xml +++ b/hbase-lesson/pom.xml @@ -20,6 +20,18 @@ hbase-client 2.4.17 + + org.apache.hbase + hbase-common + 2.4.17 + compile + + + org.apache.hbase + hbase-common + 2.4.17 + compile + \ No newline at end of file diff --git a/hbase-lesson/src/main/java/cn/vscoder/Main.java b/hbase-lesson/src/main/java/cn/vscoder/Main.java deleted file mode 100644 index 2855fd2..0000000 --- a/hbase-lesson/src/main/java/cn/vscoder/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package cn.vscoder; - -public class Main { - public static void main(String[] args) { - System.out.println("Hello, World!"); - } -} \ No newline at end of file diff --git a/hbase-lesson/src/main/java/date_20250328/task_DDL.java b/hbase-lesson/src/main/java/date_20250328/task_DDL.java new file mode 100644 index 0000000..c690f50 --- /dev/null +++ b/hbase-lesson/src/main/java/date_20250328/task_DDL.java @@ -0,0 +1,60 @@ +package date_20250328; + +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.hbase.HBaseConfiguration; +import org.apache.hadoop.hbase.NamespaceDescriptor; +import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.client.*; +import org.apache.hadoop.hbase.util.Bytes; + +public class task_DDL { + public static void main(String[] args) throws Exception { + // create方法会自动去加载运行时的classpath中的hbase-site.xml等配置文件 + Configuration conf = HBaseConfiguration.create(); + conf.set("hbase.zookeeper.quorum", "hadoop102:2181"); + + // 创建一个hbase的客户端连接 + Connection conn = ConnectionFactory.createConnection(conf); + + // 拿到一个DDL的操作工具 + Admin admin = conn.getAdmin(); + + /** + * 建名称空间 + */ + NamespaceDescriptor descriptor = NamespaceDescriptor.create("ideaPro_space").build(); + admin.createNamespace(descriptor); + + // 创建一个列族描述 构造器 + ColumnFamilyDescriptorBuilder columnFamilyDescriptorBuilder = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("base_info")); + // 通过 列族描述构造器 设置列族的参数 + columnFamilyDescriptorBuilder.setMaxVersions(2); + // 通过 列族描述构造器,构造一个列族描述对象 + ColumnFamilyDescriptor familyDescriptor = columnFamilyDescriptorBuilder.build(); + // 创建第二个列族描述 构造器 + ColumnFamilyDescriptorBuilder columnFamilyDescriptorBuilder2 = ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes("extra_info")); + // 通过 列族描述构造器 设置列族的参数 + columnFamilyDescriptorBuilder2.setMaxVersions(5); + // 通过 列族描述构造器,构造一个列族描述对象 + ColumnFamilyDescriptor familyDescriptor2 = columnFamilyDescriptorBuilder2.build(); + + + // 创建表名对象 + TableName tableName = TableName.valueOf("ideaPro_space:students"); + // 创建一个表描述 构造器 + TableDescriptorBuilder tableDescriptorBuilder = TableDescriptorBuilder.newBuilder(tableName); + // 通过表描述构造器,设置列族 + tableDescriptorBuilder.setColumnFamily(familyDescriptor); + // 通过表描述构造器,设置第二个列族 + tableDescriptorBuilder.setColumnFamily(familyDescriptor2); + // 通过表描述构造器,创建一个表描述对象 + TableDescriptor tableDescriptor = tableDescriptorBuilder.build(); + + // 用admin来创建这个表 + admin.createTable(tableDescriptor); + + // 关闭客户端工具 + admin.close(); + conn.close(); + } +}