Hbase Java API操作

HBase Java API操作

零、启动Hbase

要先确保linux上 Hbase启动,不然连不上

在这里插入图片描述

一、Java创建Hbase 项目

1、创建文件夹

先在D盘创建一个空的文件夹 Hbase03 用来存放hbase项目

在这里插入图片描述

2、打开Java IDEA

1) 新建项目

点击左上角,新建项目

在这里插入图片描述

2)选择Maven

选择Maven包管理,记住一定是jdk1.8版本的,然后那个从archetype不要选择

在这里插入图片描述


然后点击下一步,位置选择刚刚D盘创建的那个Hbase03文件夹,然后点击完成

在这里插入图片描述

二、配置环境

创建完成之后,进来是一个pom.xml 文件

在这里插入图片描述


添加以下的配置,其中大部分都是本来就有的,主要是<dependencise></dependencise>这个部分

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>untitled</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>2.5.0</version>
        </dependency>
    </dependencies>

</project>

然后右上角有个m的图标,点击一下,加载配置文件,导入包,这个很关键,不然包那些都用不起

在这里插入图片描述

三、Java API操作

1、创建包

src 下面 main 下面java下面创建一个org.example

在这里插入图片描述


org.example 包下面创建一个 HBaseDemo

在这里插入图片描述

2、java API 连接Hbase

输入以下代码,创建一个对象conf 接收使用HBaseConfiguration 包的create()方法 进行连接,然后使用 trycatch进行异常捕获

package org.example;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;

import java.io.IOException;

public class HBaseDemo {
    private static Connection connection;
    private static String nameSpacName;
    /**
     * 连接hbase
     * */
    static {
        Configuration conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum","master,slave1,slave2");
        try{
            connection = ConnectionFactory.createConnection(conf);
        }catch (IOException ex){
            ex.printStackTrace();
        }
    }

    public static void main(String[] args) {

    }
}

3、java API 创建表空间

现在linux里面查看所有的表空间

在这里插入图片描述


在下面创建一个createNameSpace创建表空间的函数方法,里面的参数是表空间的名字,然后下面main方法进行调用方法

public static void createNameSpace(String nameSpacName) throws IOException{
        if(nameSpacName == null || nameSpacName.equals("")){
            System.err.println("namespace 不能为空!");
            return;
        }
        Admin admin = connection.getAdmin();
        NamespaceDescriptor.Builder builder = NamespaceDescriptor.create(nameSpacName);
        NamespaceDescriptor namespaceDescriptor = builder.build();
        try{
            admin.createNamespace(namespaceDescriptor);
            System.out.println("namespace 创建成功");
        }catch (NamespaceExistException e){
            System.err.println("namespace 名字已存在!");
        }
    }
public static void main(String[] args) throws IOException{
        createNameSpace("Hbase2");

    }

运行结果,linux下面多出了一个新创建的Hbase2表空间

在这里插入图片描述


在这里插入图片描述

4、Java API 删除表

在表空间下面,刚刚创建了一个表hb,现在将这个表给删除掉

在这里插入图片描述


在下面创建一个deTable创建删除表的函数方法,里面的参数是表空间的名字和删除表的名字,首先创建一个admin对象,获取admin,然后创建一个TableName方法,将表空间参数和表明参数传入进去,在hbase里面要删除表的话,首先要将表标记为不可用,使用创建的admin对象,调用disableTable方法传入表名参数,将这个表标记为不可用,然后使用deleteTable方法,删除表,然后使用close方法关闭,最后下面main方法进行调用方法

   public static  void deTable(String nameSpacName,String tableName) throws IOException {
//        if(!existsTable(nameSpacName,tableName)){
//            System.out.println("表不存在!");
//            return;
//        }
        Admin admin = connection.getAdmin();
        TableName tb = TableName.valueOf(nameSpacName, tableName);
        admin.disableTable(tb);  //再删除表之前首先要把表设置为不可用,跟在linux里面一样的
        admin.deleteTable(tb);
        admin.close();
    }

main 方法调用删除表的deTable函数,将表空间参数和表名参数传入进去

在这里插入图片描述


执行完成

在这里插入图片描述


在linux中进行查看,Hbase2中的hb表已经被删除了

在这里插入图片描述

5、Java API 插入数据

还是讲刚刚的那个Hbase2下的hb表创建回来,列族是h1,在下面创建数据

在这里插入图片描述


下面创建putData函数插入hbase表数据,但是现在还没有成功,先不进行方法说明

/**
     * put 放入数据
     * 顺序是:表空间:表名,行名,列族:列名,还有值
     * */
    public static void putData(String nameSpacName,String tableName,String rowkey,String cf,String cl,String value) throws IOException {
        TableName tb = TableName.valueOf(nameSpacName,tableName);
        Table table = connection.getTable(tb);
        Put put = new Put(Bytes.toBytes(rowkey)); //先字节转换,然后把行名放进去
        put.addColumn(Bytes.toBytes(rowkey),Bytes.toBytes(cf),Bytes.toBytes(cl));
    }

6、Java API 删除表数据

删除表空间下Hbase2,hb表里面的数据
首先在linux进行查看,hb表下面的数据

在这里插入图片描述


在下面创建一个deledata方法,里面的参数,表空间,表名,列族,列名,行名,创建一个tb对象用来获取表空间和表名,然后创建一个table对象那个,获取刚刚的tb对象,创建delete对象,里面的参数是指定删除哪一行,,用delete调用addColumn方法,里面的参数是列族和列,最后table对象调用delete方法,传入参数delete对象

 /**
     * 删除表数据 deletedata
     * */
    public static void deledata(String nameSpacName,String rowkey) throws IOException{
        TableName tb = TableName.valueOf(nameSpacName,tableName);
        Table table = connection.getTable(tb);
        Delete delete = new Delete(Bytes.toBytes(rowkey)); //指定删除哪一行的数据
        delete.addColumn(Bytes.toBytes(cf),Bytes.toBytes(cl)); //列族和列
        table.delete(delete);
    }

下面main方法,调用deletedata函数方法

    public static void main(String[] args) throws IOException{
//        createNameSpace("Hbase2");
//        deTable("Hbase2","hb");
//        putData("Hbase2","hb","1002","h1","name","wang");
        deledata("Hbase2","hb","h1","name","1001");

    }

运行完成

在这里插入图片描述


在linux中查看,数据已经没有了

在这里插入图片描述

原文地址:https://blog.csdn.net/m0_72168501/article/details/128062895

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


文章浏览阅读301次。你可以使用Thrift客户端来测试HBase Thrift服务。例如,在Python中,你可以使用。请确保你的HBase伪集群已正确配置并且Thrift服务已经启动。这将在你的伪集群中启动HBase Thrift服务。库或者直接使用Thrift接口。进入HBase的安装目录,找到。请根据需要进行相应的配置。这将停止Thrift服务。_hbase 单机 thrift 配置
文章浏览阅读565次。hive和hbase数据迁移_hive转hbase
文章浏览阅读707次。基于单机版安装HBase,前置条件为Hadoop安装完成,安装Hadoop可以参考链接,Hadoop单机安装。地址:https://dlcdn.apache.org/hbase/2.4.13/hbase-2.4.13-src.tar.gz2.解压缩文件3.进入到conf目录下4.修改配置文件 hbase-env.sh示例:示例:6.修改配置文件 hbase-site.xml示例:8.访问页面访问你所以在服务器的16010端口,查看页面以上就是单机版安装HBase的内容,后续_hbase 2.4.13下载
文章浏览阅读301次。linux集群搭建-HBase_linux中在/home目录下创建目录hbase
文章浏览阅读933次。中没有库的概念,说一个数据说的是哪一个名称空间下的那一张表下的哪一个行键的哪一个列族下面的哪一个列对应的是这个数据。注意:put数据需要指定往哪个命名空间的哪个表的哪个rowKey的哪个列族的哪个列中put数据,put的值是什么。注意:put数据需要指定往哪个命名空间的哪个表的哪个rowKey的哪个列族的哪个列中put数据,put的值是什么。注意:put数据需要指定往哪个命名空间的哪个表的哪个rowKey的哪个列族的哪个列中put数据,put的值是什么。操作Hbase系统DDL,对名称空间等进行操作。_hbase中报错undefined method for main:object
文章浏览阅读1k次,点赞16次,收藏21次。整理和梳理日常hbase的监控核心指标,作为经验沉淀_hbase 对应promethus指标名
文章浏览阅读1.5k次,点赞45次,收藏20次。今天把之前学习Hbase的入门基础知识笔记翻出来了,为了不忘记也是帮助身边的小伙伴,我把他又整理了下放了出来给大家,希望对HBASE一知半解的小伙伴,能够对Hbase有一个清晰的认识,好了废话不多说,进入正题。以上内容就是初的识HBase 入门知识,包含了hbase的由来,特性,物理存储,逻辑存储模型,以及优缺点,应用场景这些内容,相信后面在使用或更深入的研究Hbase打下了良好的基础,后面的更深入的学习内容,看计划安排在后面的文章中进行更新。
文章浏览阅读655次。HDFS,适合运行在通用硬件上的分布式文件系统,是一个高度容错性的系统,适合部署在廉价的机器上。Hbase,是一个分布式的、面向列的开源数据库,适合于非结构化数据存储。MapReduce,一种编程模型,方便编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。Chukwa,是一个开源的用于监控大型分布式系统的数据收集系统。_开源非结构化数据存储
文章浏览阅读1.9k次。mongodb和hbase的区别和应用场景_hbase和mongodb的区别
文章浏览阅读1.2k次。Hbase入门篇01---基本概念和部署教程_hbase教程
文章浏览阅读1.6k次,点赞19次,收藏25次。hbase相关内容
文章浏览阅读942次,点赞16次,收藏20次。在hbase1.x中transition是令广大大数据运维人员头疼的一个话题,因为,region 的状态转移涉及到了三个核心组件,分别为:hbase master,zookeeper和hbase 的regionserver,这三个组件中的某一个region的状态都是一致的情况下,这个region 才算是正常,状态转移过程及其复杂,hbase 集群很容易出现RIT。好消息是,hbase2.x中有个工具HBCK2,这个工具可不是简单的hbase1.x中hbck 的升级,变化有点大,详细变化请参考帮助文档(
文章浏览阅读1k次。在HBase中,Region分裂是一种自动的机制,用于在Region大小达到一定阈值时将其分裂成两个Region,以便更好地管理数据。HBase中的Region大小是可以配置的,通过设置HBase表的最小和最大Region大小来控制。需要注意的是,禁止Region分裂后,当表的大小达到一定阈值时,数据将不再分裂成新的Region,因此需要根据实际需求进行调整。需要注意的是,禁止Region分裂后,当表的大小达到一定阈值时,数据将不再分裂成新的Region,因此需要根据实际需求进行调整。_hbase region大小
文章浏览阅读737次。可以看出,HBase作为数据仓库的一种补充,可以用于存储和管理大量数据,以便快速地分析和查询。是一种基于数据库的形式,用于存储和管理大量数据,以便快速地分析和查询。例如,可以使用HBase存储一些用户行为数据,然后进行分析,以便更好地了解用户行为和需求。其次,需要配置HBase相关的环境变量,例如JAVA_HOME、HBASE_HOME等。HBase可以用于存储结构化和非结构化数据,包括文本、图像、视频等。例如,可以使用HBase存储一些传感器数据,然后进行实时分析和处理。一、HBase集群环境搭建。_用hbase 搭建数仓
文章浏览阅读1.9k次。Data。_springboot整合hbase
文章浏览阅读880次,点赞23次,收藏20次。etc/abrt下的两个文件,分别是:abrt-action-save-package-data.conf 和 abrt.conf,修改内容如下。我们后面排查的时候去查看/run/cloudera-scm-agent/process/2325-hbase-REGIONSERVER下是否有。发现有个hs_err_pid15967.log JVM生成的错误日志,那么把这个日志下载查看,返现日志这么写的。接下来就等下一次hbase的节点挂了之后查看转储文件,转储文件在/var/sqool/abrt下。_regionserver 退出 没有错误日志
文章浏览阅读1.7k次。以下命令都需要在Hbase Shell中运行:Hbase信息status:服务器状态version:版本表操作查看所有表:list表基本信息:describe "表名称"查看表是否存在:exists '表名称'创建表:create '表名称', '列族1', '列族2', '列族3'删除表:首先禁用表:disable '表名称'然后删除表:drop '表名称'修改表:表数据操作查看所有数据:scan "表名称"..._hbase sehll怎么看登录的是哪个hbase
文章浏览阅读885次,点赞18次,收藏21次。在HBase中执行查询操作通常使用HBase Shell或编程语言API(如Java或Python)来执行。使用编程语言API,您可以使用相应的HBase客户端库来执行查询操作。这是一个简单的Java代码示例,演示了如何使用HBase Java API进行单行查询。这些示例仅为基本查询操作,HBase Shell还提供其他高级查询功能,如按时间戳过滤,使用正则表达式进行查询等。请注意,这只是HBase查询的基本示例,您可以根据实际需求和HBase的数据模型进行更复杂的查询操作。
文章浏览阅读7.3k次,点赞7次,收藏28次。找到hbase的bin目录并进入,执行启动hbase hmaster命令。问题原因 hmaster挂了 ,需要重新启动hmaster才行。hbase shell输入命令出现如下问题。_keepererrorcode = nonode for /hbase/master
文章浏览阅读1.3k次。三次信息化浪潮。_大数据应用开发技术笔记