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 tableName,String cf,String cl,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中查看,数据已经没有了
在这里插入图片描述

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值