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 ...
随机推荐
- uniapp 只选择月份与日的时间选择器
1.使用 <picker> 组件的 mode 属性设置为 "multiSelector",然后通过设置 range 属性来提供可选的月份和日的列表. <templ ...
- python爬虫抓取图片
一.什么是爬虫 什么是爬虫?爬虫是蜘蛛么?是八爪鱼么?nonono. 爬虫是指请求网站并获取数据的自动化程序,又称网页蜘蛛或网络机器,最常用领域是搜索引擎,最常用的工具是八爪鱼. 它的基本流程分为以下 ...
- Ubuntu安装后续工作
更新源: sudo gedit /etc/apt/sources.list 清华的源 deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial ma ...
- [超详细] GraalVM打包含有JNI的本地镜像
GraalVM 是一种高性能.多语言通用虚拟机和编译器技术.它由 Oracle 开发并开源,旨在为不同的编程语言和应用场景提供统一的运行时环境和编译器平台.以下是 GraalVM 的一些主要特点和功能 ...
- Go 并发编程 - Goroutine 基础 (一)
基础概念 进程与线程 进程是一次程序在操作系统执行的过程,需要消耗一定的CPU.时间.内存.IO等.每个进程都拥有着独立的内存空间和系统资源.进程之间的内存是不共享的.通常需要使用 IPC 机制进行数 ...
- XV6中的锁:MIT6.s081/6.828 lectrue10:Locking 以及 Lab8 locks Part1 心得
这节课程的内容是锁(本节只讨论最基础的锁).其实锁本身就是一个很简单的概念,这里的简单包括 3 点: 概念简单,和实际生活中的锁可以类比,不像学习虚拟内存时,现实世界中几乎没有可以类比的对象,所以即使 ...
- 《Hadoop3.X大数据开发实战(视频教学版)》新书来啦!
- 内网DNS解析☞dnsmasq
内网DNS解析☞dnsmasq 目录 内网DNS解析☞dnsmasq 简介: 安装dnsmasq 问题: 1.怎么让172.30.1.* 与172.30.2.* 两个网段能互相访问? 2.firewa ...
- 使用HTML一键打包IPA工具打包KRPANO全景项目
该软件已经被GDB苹果网页一键打包工具取代,详情参考如下链接 GDB苹果网页一键打包 HTML一键打包IPA(苹果应用)工具可以把本地HTML项目或者网站打包为一个苹果应用IPA文件,无需编写任何代码 ...
- Note -「Maths」Euler 筛筛积性函数
Part. 1 Preface 这个东西是我在做 JZPTAB 的时候 LYC 给我讲的. 然后发现这是个通法,就写一写. 本文除了例题所有代码均未经过编译,仅作为参考. Part. 2 Untitl ...