首页 > 其他分享 >HBase|idea使用hbase进行简单的DDL增删改查

HBase|idea使用hbase进行简单的DDL增删改查

时间:2023-09-15 12:22:41浏览次数:36  
标签:admin 改查 idea IOException import static hbase HBase

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

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");

 

标签:admin,改查,idea,IOException,import,static,hbase,HBase
From: https://www.cnblogs.com/gbrr/p/17703661.html

相关文章

  • 借助Phoenix连接hbase
    1、下载hbase对应版本的安装包之后将其上传到/export/server的目录下面;2、使用解压命令对其进行解压tar-zxvfphoenix-hbase-2.4-5.1.3-bin.tar.gz3、将解压后的文件里面的所有的jar包复制到node1,node2,node3的lib目录下面4、将hbase/conf目录下的hbase-site.xml文件复制......
  • idea导入快捷键
    转载:https://www.cnblogs.com/poscana/p/14916698.html 习惯了eclipse的同学可能对IDEA的快捷键不习惯,这里打包了一份eclipse中快捷键的设置。直接导入IDEA就可以使用。 使用方法:step1:下载快捷键jar包,下载地址在文章末尾step2:在IDEA中以importsetting的方式导入jar包......
  • Hbaseshell命令中的一些语法
    help‘xx’看库list_namespace看表list建表create't1','f1'写数据put't1','r1','c1:name','value'读数据一行get't1','r1'get't1','r1',{COLUMN=>['r1:name',&......
  • idea使用设置grade构建项目遇到的坑
    坑1:构建提示无法通过配置文件构建 解决办法:经过查明是系统自动更新将gradle的配置默认为gradle,现在改为idea。问题解决 坑二:设置程序参数,给配置avtive设置初始值  ......
  • HBASE完全分布式安装
    介绍HBase–HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。HadoopHDFS为HBase提供了高可靠性的底层存储支持,HadoopMapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。下载HBasehttps://hbase.apache.org/down......
  • HBase学习5(HBase java编程:创建项目,创建删除表,数据增删改查)
    1.准备工作1.1创建IDEAMaven项目其中名字为hbase_op,groupid为cn.itcast然后导入pom依赖<repositories><!--代码库--><repository><id>aliyun</id><url>http://maven.aliyun.com/nexus/content/groups/public/</url>&l......
  • IDEA 22.2.3 创建web项目及Tomcat部署与服务器初始界面修改(保姆版)
    开始前请确认自己的Tomcat、JDK已经安装配置完毕不同版本的IDEA创建配置流程可能不同,演示中的IDEA版本号为22.2.3本教程创作时间为2023/09/141.创建项目通过下图路径进入创建界面,项目名称、路径、JDK都选择完毕后点击Create创建2.创建web目录右键单击目录名呼出二级菜单......
  • Hbase基础知识
     数据库:被称为namespace表:创建表的时候仅需要声明列族Columnfamily即可行:row,每行数据由一个rowkey和多个column组成,按字典顺序存储。查询只能根据rowkey进行查询,不可以用sql列:column由列族columnfamily和列限定符columnqualifier限定,建表只需指明列族,列限定符无需预先定义......
  • Java集成开发环境(IDE)-IntelliJ IDEA 2023 mac+win版
    IntelliJIDEA是一款由JetBrains开发的集成开发环境(IDE),用于Java、Kotlin和其他编程语言的开发。它是一款功能强大、灵活且易于使用的IDE,被广泛认为是Java开发的首选工具之一。→→↓↓载IntelliJIDEA2023mac/win版 首先,IntelliJIDEA2023引入了更强大的代码分析和智能提......
  • idea 配置详解 (二) Editor
    (3.File|Settings|Editor)3.1File|Settings|Editor|GeneralMouseControl:第一个复选框选中时可以鼠标滑动滚轮改变字体的大小不想要的可以不选第二个复选框选中之后可以拖动代码片段取消勾选可以禁用​SoftWraps:选中第一个复选框时可将软包装应用到特定文......