HBase|idea使用hbase进行简单的DDL增删改查
老师要测试什么的,所以我想练习一下,顺便记录在博客里,如有错误,敬请指正,谢谢!!!
idea连接hbase
首先确保你可以打开Hbase http://192.168.40.100:16010 查看所有表

//导入所需的类和包,包括HBase的相关类 import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos; import javax.xml.stream.events.Namespace;
import java.io.IOException; import static org.checkerframework.checker.units.UnitsTools.h; /**
* @BelongsProject: hbase
* @BelongsPackage: PACKAGE_NAME
* @Author: yanyanyan
* @CreateTime: 2023-09-13 20:56
* @Description: TODO
* @Version: 1.0
*/
//创建一个名为”TestAPI“的java类
public class TestAPI {
// 声明一个静态的Connection对象和一个静态的Admin对象,并将其初始化未null
private static Connection connection = null;
private static Admin admin = null; //在静态块中,创建一个HBase配置对象(Configuration)
static {
try {
Configuration configuration = HBaseConfiguration.create();
// 配置HBase连接的ZooKeeper主机信息,使用了”hadoop100,hadoop101,hadoop102“作为ZooKeeper的主机名
configuration.set("hbase.zookeeper.quorum", "hadoop100,hadoop101,hadoop102");
// 使用ConnectionFactory.createConnection(configuration)方法基于配置对象创建一个HBase连接(Connection)
connection = ConnectionFactory.createConnection(configuration);
// 使用connection.getAdmin()方法从连接中获取一个HBase管理客户端(Admin)
admin = connection.getAdmin();
// 在异常处理块中打印异常的堆栈跟踪信息
} catch (IOException e) {
e.printStackTrace();
}
} //创建一个函数判断表是否存在,以此证明是否成功连接
public static boolean isTableExist(String tableName) throws IOException {
boolean exists = admin.tableExists(TableName.valueOf(tableName));
return exists;
} // 关闭HBase管理客户端(admin)
public static void close() {
if (admin != null) {
try {
admin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} public static void main(String[] args) throws IOException {
//测试表是否存在
System.out.println(isTableExist("stu"));
//关闭资源
close();
}
}
返回true,连接成功!

hbase创建表
public static void createTable(String tableName,String...cfs) throws IOException {
//1、判断是否存在列族信息
if(cfs.length<=0){
System.out.println("请设置列族信息!");
return;
}
//2、判断表是否存在
if(isTableExist(tableName)){
System.out.println(tableName+"表已存在!");
return;
}
//3、创建表描述器
HTableDescriptor hTableDescriptor=new HTableDescriptor(TableName.valueOf(tableName));
//4、循环添加列族信息
for(String cf:cfs) {
//创建列族描述器
HColumnDescriptor hColumnDescriptor = new HColumnDescriptor(cf);
//添加具体的列族信息
hTableDescriptor.addFamily(hColumnDescriptor);
}
// 创建表
admin.createTable(hTableDescriptor);
}
//创建表测试语句
System.out.println(isTableExist("stu6"));
createTable("0408:stu5","info1","info2");
System.out.println(isTableExist("stu6"));
close();
可以在测试里面加入stu6,返回false之后再返回true以此证明创表成功!


hbase删除表
public static void dropTable(String tableName) throws IOException {
//1、判断表是否存在
if (!isTableExist(tableName)) {
System.out.println(tableName + "does not exist.");
return;
}
//2、使表下线
admin.disableTable(TableName.valueOf(tableName));
//3、删除表
admin.deleteTable(TableName.valueOf(tableName));
}
dropTable("stu6");
测试

结果正确


hbase创建命名空间
//4、创建命名空间
public static void createNameSpace(String ns) throws IOException {
//1、创建命名空间描述器
/*
通过调用 NamespaceDescriptor.create(ns) 创建一个命名空间描述器
使用 .build() 方法构建描述器对象。
*/
NamespaceDescriptor namespaceDescriptor = NamespaceDescriptor.create(ns).build(); //2、创建命名空间
try { admin.createNamespace(namespaceDescriptor);
System.out.println(ns + "命名空间创建成功!");
} catch (NamespaceExistException e) {
System.out.println(ns + "命名空间已存在!");
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("111");
}
createNameSpace("0400");

我们在这个命名空间里创建一个stu00表
createTable("0400:stu00","info1","info2");


HBase|idea使用hbase进行简单的DDL增删改查的更多相关文章
- salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建
VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的标签相对简单,如果需要深入了解VF相关知识以及标签, 可以通过以下链接查看或下载 ...
- 【Mybatis】简单的mybatis增删改查模板
简单的mybatis增删改查模板: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE map ...
- 【转载】salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建
salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建 VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的 ...
- 最简单的mybatis增删改查样例
最简单的mybatis增删改查样例 Book.java package com.bookstore.app; import java.io.Serializable; public class Boo ...
- SQL简单语句(增删改查)
简单的SQL语句增删改查操作 说明: 在mysql里面亲测结果正确 用到的表(学生表:studnets) 1.创建一个学生表,(学号,姓名,性别,家庭住址) mysql> create t ...
- KbmMemTable的简单应用(增删改查示例)
//kbmMemTable unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graph ...
- Hbase javaAPI(工具类)表的增删改查
建立连接: package Init; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; i ...
- avalon实现一个简单的带增删改查的成绩单
自从angular问世,一直就有去了解学习angular,一直想用angular去做一个项目,但无奈,大ng是国外产物,ng1.2版本就只兼容到IE8,1.3后的几个版本提升到IE9,据说NG2.0更 ...
- ASP.net+SQL server2008简单的数据库增删改查 VS2012
工具:VS2012 数据库:SQL server 简单说明:根据老师上课给的代码,进行了简单的改正适用于VS2012环境,包括注册.登录.查询.修改.删除功能,多数参考了网上的代码 百度云源代码连接t ...
- NodeJs+Express实现简单的Web增删改查
前一段时间,公司组织了一次NodeJs的技术分享,自己有幸去听了听,第一次接触NodeJs,后来经过自己学习和探索,完成了一个很简单的Web演示项目,在这里和初学者做以分享,开发工具:WebStorm ...
随机推荐
- centos7离线安装harbor
前言 harbor是一个docker私有仓库,基于docker官方的registry,提供GUI.权限控制.项目管理等功能. 安装harbor前,需要先安装docker和docker-compose ...
- 《高级程序员 面试攻略 》RocketMQ 如何保证顺序性
RocketMQ 提供了一种称为顺序消息的机制来确保消息的顺序性.下面是一些关键的方法和概念: 1. 顺序消息:顺序消息是指在发送和消费过程中,消息按照特定的顺序进行处理.RocketMQ 通过将消息 ...
- Sourcetrail 代码分析工具的使用
Sourcetrail 概述 Sourcetrail 是一个代码分析工具,它旨在帮助开发人员理解和导航复杂的代码库.它可以创建代码库的可视化图形,显示代码中的类.函数.变量.依赖关系等信息,从而帮助开 ...
- 完美解决Content type ‘multipart/form-data;boundary=----------0467042;charset=UTF-8‘ not supported问题
一.前言 今天在做文件上传功能出现了该问题,该接口如下: @PostMapping("/upload") public Boolean upload(@RequestParam ...
- Vue【原创】基于elementui的【分组多选下拉框group-select】
效果图: 如图分为多选模式和单选模式. group-select: 1 <template> 2 <div> 3 <el-select 4 v-model="i ...
- PHP上传文件$_FILES, $_POST为空 empty 时, 文件上传大小限制
原因 今天在使用ci upload库时, 上传mp4发现表单为空, 上传png等类型却可以正常. 折腾一番后才恍然, PHP上传大小限制的问题. Make一下. 真是失策啊, 一开始我还不相信到处瞎折 ...
- Solution Set -「CF 1514」
「CF 1514A」Perfectly Imperfect Array Link. 就看序列中是否存在不为平方数的元素即可. #include<bits/stdc++.h> using n ...
- 300PLC转以太网作为RTU主站连接智能电表
300PLC转以太网作为RTU主站连接智能电表 现场介绍: 西门子300PLC转以太网通过兴达易控MPI-ETH-XD1.0PLUS PLC转以太网模块把安科瑞的智能电表接入到300PLC里,读取电表 ...
- 《最新出炉》系列初窥篇-Python+Playwright自动化测试-17-处理鼠标悬停
1.简介 有些测试场景或者事件,playwright根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停 ...
- DevOps平台建设的关键点是什么?
关键还是在人 找到一个「吃过猪肉,见过猪跑的」,你问他什么是猪,他自然比「没吃过猪肉,没见过猪跑的人」更了解猪.海豚海豚,你知道猪是什么样么?它都没上过陆地,这辈子都没见过猪,它哪知道猪是什么样. 有 ...