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(); + } +}