老师要测试什么的,所以我想练习一下,顺便记录在博客里,如有错误,敬请指正,谢谢!!!

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增删改查的更多相关文章

  1. salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建

    VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的标签相对简单,如果需要深入了解VF相关知识以及标签, 可以通过以下链接查看或下载 ...

  2. 【Mybatis】简单的mybatis增删改查模板

    简单的mybatis增删改查模板: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE map ...

  3. 【转载】salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建

    salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建   VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的 ...

  4. 最简单的mybatis增删改查样例

    最简单的mybatis增删改查样例 Book.java package com.bookstore.app; import java.io.Serializable; public class Boo ...

  5. SQL简单语句(增删改查)

    简单的SQL语句增删改查操作 说明: 在mysql里面亲测结果正确    用到的表(学生表:studnets) 1.创建一个学生表,(学号,姓名,性别,家庭住址) mysql> create t ...

  6. KbmMemTable的简单应用(增删改查示例)

    //kbmMemTable unit Unit1;   interface   uses   Windows, Messages, SysUtils, Variants, Classes, Graph ...

  7. Hbase javaAPI(工具类)表的增删改查

    建立连接: package Init; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.hbase.*; i ...

  8. avalon实现一个简单的带增删改查的成绩单

    自从angular问世,一直就有去了解学习angular,一直想用angular去做一个项目,但无奈,大ng是国外产物,ng1.2版本就只兼容到IE8,1.3后的几个版本提升到IE9,据说NG2.0更 ...

  9. ASP.net+SQL server2008简单的数据库增删改查 VS2012

    工具:VS2012 数据库:SQL server 简单说明:根据老师上课给的代码,进行了简单的改正适用于VS2012环境,包括注册.登录.查询.修改.删除功能,多数参考了网上的代码 百度云源代码连接t ...

  10. NodeJs+Express实现简单的Web增删改查

    前一段时间,公司组织了一次NodeJs的技术分享,自己有幸去听了听,第一次接触NodeJs,后来经过自己学习和探索,完成了一个很简单的Web演示项目,在这里和初学者做以分享,开发工具:WebStorm ...

随机推荐

  1. 如何爆破js加密后的密码?

    如何爆破js加密后的密码? 1.首先burp中安装插件: https://github.com/whwlsfb/BurpCrypto 安装插件完毕后,分析进行js加密的算法. 2.分析加密过程: 找到 ...

  2. MediaBox助力企业一站式获取音视频能力

    以一只音视频百宝箱,应对「千行千面」. 洪炳峰.楚佩斯|作者 大家好,今天我分享的主题是MediaBox--行业音视频数字化再加速. 根据权威数据表明,65%的行业数字化信息来自视频,基于此,音视频技 ...

  3. 提高 MySQL查询效率的方法

    当涉及到提高MySQL查询效率时,以下是一些重要的策略和技巧,可以帮助你优化数据库性能.无论你是一个Web开发者.数据工程师还是系统管理员,这些方法都可以帮助你确保你的MySQL数据库运行得更快.更有 ...

  4. Spring Event 观察者模式, 业务解耦神器

    观察者模式在实际开发过程中是非常常见的一种设计模式. Spring Event的原理就是观察者模式,只不过有Spring的加持,让我们更加方便的使用这一设计模式. 一.什么是观察者模式 概念: 观察者 ...

  5. 小知识:调整OCI实例的时区

    之前在随笔中<Linux (RHEL)修改时区> 介绍了时区修改方法. 默认OCI实例中,时区是GMT,在国内用看着这个时区就是很别扭的事情,于是修改时区,实测无需配置 /etc/sysc ...

  6. 如何随心所欲调试HotSpot VM源代码?(改造为CMakeLists项目)

    常有小伙伴问我是怎么调试HotSpot VM源代码的,我之前通过视频和文章介绍过一种大家都用的调试方法,如下: 文章地址:第1.2篇-调试HotSpot VM源代码(配视频) 视频地址:https:/ ...

  7. Dubbo3应用开发——架构的演变过程

    Dubbo3应用开发--架构的演变过程 什么是Dubbo 早期Dubbo的定位: 基于Java的高性能,轻量级的RPC框架:SOA[Service-Oriented Architecture ⾯向服务 ...

  8. 2023年Vue开发中的8个最佳工具

    前言 Vue.js,一款当今非常流行的基于JavaScript的开源框架,旨在构建动态的可交互应用. Vue.js以其直观的语法和灵活的架构而广受全球开发者的欢迎和赞誉.随着时间的推移,Vue不断进化 ...

  9. POWERBI_1分钟学会_连续上升或下降指标监控

    一:数据源 模拟数据为三款奶茶销量的日销售数据源,日期是23.8.24-23.8.31.A产品为连续7天,日环比下降,B产品为连续3天,日环比下降,C产品为连续2天,日环比下降. 二:建立基础度量值 ...

  10. WebKit Inside: CSS 样式表解码字符集

    CSS 样式表引入有3种方式: 外部样式表.内部样式表.行内样式,不同的引入方式,解码样式表的字符集原理不一样. 外部样式表 外部样式表由 link 标签引入,当 WebKit 解析到 link 标签 ...