spring中操作hbase

spring中操作hbase

一、简介

这里介绍在spring中对hbase的操作。使用的是spring-data-hadoop-hbase包及相关包,包含原生的HbaseTemplate调用以及自定义的对象存取服务类HbaseService。

二、知识点

对hbase的操作是基于HbaseTemplate类,内包含对hbase数据的增删改查操作,以及自定义对语句的操作。这里列下其实现的操作接口HbaseOperations,如下:

package org.springframework.data.hadoop.hbase;
import org.apache.hadoop.hbase.client.Scan;
import java.util.List;
public interface HbaseOperations {
   
    //直接执行hbase语句操作
   <T> T execute(String tableName, TableCallback<T> action);

    //以下是查找方法
   <T> T find(String tableName, String family, final ResultsExtractor<T> action);
   <T> T find(String tableName, String family, String qualifier, final ResultsExtractor<T> action);
   <T> T find(String tableName, final Scan scan, final ResultsExtractor<T> action);
   <T> List<T> find(String tableName, String family, final RowMapper<T> action);
   <T> List<T> find(String tableName, String family, String qualifier, final RowMapper<T> action);
   <T> List<T> find(String tableName, final Scan scan, final RowMapper<T> action);

   <T> T get(String tableName, String rowName, final RowMapper<T> mapper);
   <T> T get(String tableName, String rowName, String familyName, final RowMapper<T> mapper);
   <T> T get(String tableName, final String rowName, final String familyName, final String qualifier, final RowMapper<T> mapper);

    //保存方法
   void put(String tableName, final String rowName, final String familyName, final String qualifier, final byte[] data);

   //删除方法
   void delete(String tableName, final String rowName, final String familyName);
   void delete(String tableName, final String rowName, final String familyName, final String qualifier);
}

重点注意下查找方法的Scan扫描类及关联的过滤器类,以及需自定义的结果映射RowMapper类。具体使用可直接查看源码,后续会有示例。

三、使用

这里进行代码示例,使用的是spring boot。示例前先安装好hadoop、hbase,并创建好操作对象:

#创建表stu,并创建列簇base和ext,用于HbaseTemplate使用示例
create 'stu','base','ext'
#创建表Teacher,并创建列簇base和ext,用于自定义HbaseService使用示例
create 'Teacher','base','ext'
3.1 添加maven依赖
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.dragon.study</groupId>
    <artifactId>spring_boot_hbase</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spring_boot_hbase</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-hadoop-hbase</artifactId>
            <version>2.5.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-hadoop</artifactId>
            <version>2.5.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>1.1.2</version>
        
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要在Spring Cloud访问HBase,你可以使用HBase的Java API或者Spring Data Hadoop。下面我将介绍两种方法。 1. 使用HBase的Java API: 首先,你需要在你的项目添加HBase的依赖。在Maven项目,你可以在pom.xml文件添加以下依赖: ```xml <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>VERSION_NUMBER</version> </dependency> ``` 然后,你可以使用HBase的Java API编写代码来访问HBase。你可以创建HBase的连接,并使用Table接口来执行操作。以下是一个简单的示例: ```java // 创建HBase连接 Configuration config = HBaseConfiguration.create(); Connection connection = ConnectionFactory.createConnection(config); // 获取表对象 Table table = connection.getTable(TableName.valueOf("your_table_name")); // 执行操作,例如获取某一行数据 Get get = new Get(Bytes.toBytes("your_row_key")); Result result = table.get(get); // 处理结果 byte[] value = result.getValue(Bytes.toBytes("your_column_family"), Bytes.toBytes("your_column_qualifier")); System.out.println(Bytes.toString(value)); // 关闭连接 table.close(); connection.close(); ``` 2. 使用Spring Data Hadoop: Spring Data Hadoop是Spring框架的一个模块,它提供了与Hadoop生态系统集成的功能。你可以使用Spring Data Hadoop来访问HBase。 首先,你需要在你的项目添加Spring Data Hadoop的依赖。在Maven项目,你可以在pom.xml文件添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-hadoop</artifactId> <version>VERSION_NUMBER</version> </dependency> ``` 接下来,你可以使用Spring Data Hadoop的HbaseTemplate来执行HBase操作。以下是一个简单的示例: ```java @Autowired private HbaseTemplate hbaseTemplate; public void getDataFromHBase() { String tableName = "your_table_name"; String rowKey = "your_row_key"; String columnFamily = "your_column_family"; String columnQualifier = "your_column_qualifier"; byte[] value = hbaseTemplate.get(tableName, rowKey, columnFamily, columnQualifier); System.out.println(Bytes.toString(value)); } ``` 无论你选择使用HBase的Java API还是Spring Data Hadoop,都需要确保你的应用程序能够访问HBase集群,并且具有正确的权限配置。另外,还需要根据你的具体需求进行适当的调整和优化。希望这些信息对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值