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

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. [python]爬取手机号码前缀和地区信息

    概述 使用python爬取手机号码前缀7位.区号和地区. 小网站不容易,对爬虫也挺友好,就不放链接了. 代码 import requests from lxml import etree from f ...

  2. Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.so

    在安装Docker以后,执行命令出现错误. Got permission denied while trying to connect to the Docker daemon socket at u ...

  3. CI框架的base_url localhost [::1]等问题

    为什么localhost变成了[::1] [::1]是IP6的地址, 与localhost等价 使用base_url后, 加载不了样式 ci框架需要定义base_url, 未定义就会出现返回local ...

  4. MySQL高级13-MySQL管理工具

    一.系统数据库 MySQL数据库安装完成后,自带了四个数据库: mysql数据库:存储MySQL服务器正常运行所需要的各种信息如时区.主从.用户.权限等 infomation_schema:提供了访问 ...

  5. 跳出循环可不要再用forEach,map也不好用,不妨直接用for循环

    需求:循环一个数组保持请求顺序请求接口,且当前数组的值为1时,又需要异步请求另一个接口根据返回status值跳出本次循环. 解决思路:使用for循环,首先在循环中判断数组中值为1的,用async和aw ...

  6. vue2实现饼图Pie组件封装

    实现如下效果: 效果展示:https://code.juejin.cn/pen/7226656439941955644 如果不会请移步到官网的栗子,请点击查看 直接给大家上代码: 整体代码片段 1 & ...

  7. Mybatis中的设计模式

    最近在看<通用源码阅读指导书:Mybatis源码详解>,这本书一一介绍了Mybatis中的各个包的功能,同时也涉及讲了一些阅读源码的技巧,还讲了一些源码中涉及的设计模式,这是本篇文章介绍的 ...

  8. Llama2-Chinese项目:3.2-LoRA微调和模型量化

      提供LoRA微调和全量参数微调代码,训练数据为data/train_sft.csv,验证数据为data/dev_sft.csv,数据格式为"<s>Human: "+ ...

  9. 其它——ZeroRPC和SimpleXMLRPCServer

    文章目录 一 Python中RPC框架 二 SimpleXMLRPCServer使用 服务端 客户端 三 ZeroRPC使用 服务端 客户端 一 Python中RPC框架 自带的:SimpleXMLR ...

  10. 人工智能AI绘画全攻略(AI绘画教程分享)

    在过去的三个月一直在研究人工智能生成绘画这个方向,3 月份的时候参加了小红书的小航海,也因为这个方向的选择正好对应到了趋势,小红书在一个半月做到了 1 万粉.我为什么看好这个方向? 主要是从三个方面: ...