24-Hbase-Api-ddl:
创建项目,引入pom依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hbase/hbase-server -->
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-client</artifactId>
<!-- <version>2.4.2</version>-->
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.hbase</groupId>
<artifactId>hbase-server</artifactId>
<!-- <version>2.4.2</version>-->
<version>1.3.1</version>
</dependency>
</dependencies>
01.判断表是否存在,连接服务器
public static void main(String[] args) throws IOException {
//判断表是否存在
boolean stu3 = isTableExit("stu3");
System.out.println(stu3);
}
//判断表是否存在
public static boolean isTableExit(String tableName) throws IOException {
//获取配置文件信息
HBaseConfiguration configuration = new HBaseConfiguration();
configuration.set("hbase.zookeeper.quorum","192.168.1.102,192.168.1.103,192.168.1.104");
// configuration.set("hbase.zookeeper.property.clientPort","2181"); //默认,可不写
//获取管理员对象
HBaseAdmin admin = new HBaseAdmin(configuration);
//判断表是否存在
boolean exists = admin.tableExists(tableName);
//资源,关闭。
admin.close();
return exists;
}
api另一种连接方式。
private static Connection connection = null;
private static Admin admin = null;
static {
try {
//获取配置文件信息
Configuration configuration = HBaseConfiguration.create();
configuration.set("hbase.zookeeper.quorum","192.168.1.102,192.168.1.103,192.168.1.104");
//创建连接对象
connection = ConnectionFactory.createConnection(configuration);
//获取管理员对象
admin = connection.getAdmin(); //admin操作ddl,table操作dml
} catch (IOException e) {
e.printStackTrace();
}
}
//判断表是否存在,新api
public static boolean isTableExit02(String tableName) throws IOException {
//判断表是否存在
boolean exists = admin.tableExists(TableName.valueOf(tableName));
// //资源,关闭。
// admin.close();
close();
return exists;
}
public 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(isTableExit02("stu5"));
createTable("stu5","info1","info2");
System.out.println(isTableExit02("stu5"));
close();
}
//创建表
public static void createTable(String tableName,String... columns) throws IOException {
//1、判断是否存在列族信息
if(columns.length<=0){
System.out.println("请设置列族信息");
return;
}
//2、判断表是否存在
if (isTableExit02(tableName)){
System.out.println(tableName+"表已存在");
return;
}
//创建表描述器
HTableDescriptor hTableDescriptor = new HTableDescriptor(TableName.valueOf(tableName));
//添加列族信息
for (String colum : columns) {
// 创建列族描述器
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(colum);
// hColumnDescriptor.setMaxVersions(10);//控制最大版本,根据列族修改
//添加列族
hTableDescriptor.addFamily(hColumnDescriptor);
}
//3、创建表
admin.createTable(hTableDescriptor);
}
删除表
public static void main(String[] args) throws IOException {
//删除表测试
System.out.println(isTableExit02("stu5"));//true
dropTable("stu5");
System.out.println(isTableExit02("stu5"));//false
close();
}
//删除表
public static void dropTable(String tableName) throws IOException {
//判断表是否存在
if(!isTableExit02(tableName)){
System.out.println(tableName+"表不存在");
return;
}
//使表下线,disable
admin.disableTable(TableName.valueOf(tableName));
//删除表
admin.deleteTable(TableName.valueOf(tableName));
}
创建命名空间
public static void main(String[] args) throws IOException {
//创建命名空间
createNameSpace("20210424");
createTable("20210424:stu5","info1","info2");
close();
}
//创建命名空间
public static void createNameSpace(String nameSpace){
//创建命名空间描述器
NamespaceDescriptor namespaceDescriptor = NamespaceDescriptor.create(nameSpace).build();
try {
admin.createNamespace(namespaceDescriptor);
} catch (IOException e) {
e.printStackTrace();
}
}