feat(hbase-lesson): 添加 20250328 HBase DDL 任务

- 删除了原有的 Main 类
- 新增 task_DDL 类,实现 HBase 数据库的 DDL 操作- 在 pom.xml 中添加了 hbase-common 依赖
This commit is contained in:
dev_xulongjin 2025-04-11 10:24:31 +08:00
parent 5cf3b30faa
commit 99161410f3
3 changed files with 72 additions and 7 deletions

View File

@ -20,6 +20,18 @@
<artifactId>hbase-client</artifactId>
<version>2.4.17</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version>2.4.17</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-common</artifactId>
<version>2.4.17</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

View File

@ -1,7 +0,0 @@
package cn.vscoder;
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}

View File

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