HBase编程开发(二) | 「掘金日新计划 · 12 月更文挑战」

36 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第23天

一、本篇笔记重点内容:

  • 编程实现增加表数据
  • 编程实现单行查询
  • 编程实现单行查询

二、 详细知识点介绍

Table类是HBase中重要的表数据操作类,拥有对数据增加、删除、修改、查询等的接口。Table类的常用方法如下表所示:

image.png

编程实现增加表数据

插入 数据 (在 之前创建好表的基础上操作

使用put对象,对指定列数据插入,(分为单行插入和批量插入)

调用Table的put(Put put)方法,来提交数据,传入参数Put类是需要实例化数据信息,通常包括行键值、列族、字段名、字段值等信息,当然,孔可以加入时间戳,如果不加时间戳,则系统会自动引入。类Put用于格式化要提交的数据,它的常用方法如下表所示。

image.png 1) 创建好类,并配置好Hbase的加载信息(同之前信息),并创建表操作对象


public static void main(String[] args) throws IOException {

       // 一、配置文件设置

       // 创建用于客户端的配置类实例

       Configuration  config = HBaseConfiguration.create();

 

       // 设置连接zookeeper的地址

       // hbase客户端连接的是zookeeper

       config.set(“hbase.zookeeper.quorum“, “localhost:2181“);

 

       // 二、 获得要操作的表的对象。

       // 第一个参数“config“为配置文件;第二个参数“account1“为数据库中的表名。

       // (注:“account1“为上节中所创建的表)

       HTable  table = new HTable(config, “account1“);

}

2) 设置Put对象


public static void main(String[] args) throws IOException {

       // 一、配置文件设置

       // 创建用于客户端的配置类实例

       Configuration  config = HBaseConfiguration.create();

 

       // 设置连接zookeeper的地址

       // hbase客户端连接的是zookeeper

       config.set(“hbase.zookeeper.quorum“, “localhost:2181“);

 

       // 二、 获得要操作的表的对象。

       // 第一个参数“config“为配置文件;第二个参数“account1“为数据库中的表名。

       // (注:“account1“为上节中所创建的表)

       HTable  table = new HTable(config, “account1“);

 

       // 三、设置Put对象

       // 设置行健值为“rk001“

       Put  put = new Put(Bytes.toBytes(“rk001“));

       // 设置列族、列、cell值

       // 其中“baseinfo“位列族;“name“为列;“ZhangFei“为cell值

       put.add(Bytes.toBytes(“baseinfo“), Bytes.toBytes(“name“), Bytes.toBytes(“ZhangFei“));

}

3)插入一行数据并释放资源


 

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.client.HTable;

import org.apache.hadoop.hbase.client.Put;

import org.apache.hadoop.hbase.util.Bytes;

 

public class PutTest {

public static void main(String[] args) throws IOException {

       // 一、配置文件设置

       // 创建用于客户端的配置类实例

       Configuration  config = HBaseConfiguration.create();

 

       // 设置连接zookeeper的地址

       // hbase客户端连接的是zookeeper

       config.set(“hbase.zookeeper.quorum“, “localhost:2181“);

 

       // 二、 获得要操作的表的对象。

       // 第一个参数“config“为配置文件;第二个参数“account1“为数据库中的表名。

       // (注:“account1“为上节中所创建的表)

       HTable  table = new HTable(config, “account1“);

 

       // 三、设置Put对象

       // 设置行健值为“rk001“

       Put  put = new Put(Bytes.toBytes(“rk001“));

 

       // 设置列族、列、cell值

       // 其中“baseinfo“位列族;“name“为列;“ZhangFei“为cell值

       put.add(Bytes.toBytes(“baseinfo“), Bytes.toBytes(“name“), Bytes.toBytes(“ZhangFei“));

 

       // 四、插入一行数据

       table.put(put);

 

       // 五、释放资源

       table.close();

}

}

编程实现单行查询

调用Table的get(Get get)方法,可以查询某一行所有列族的数据,传入的参数Get需要指定行键值。类Get用于格式要查询的元数据,通过此对象设定查询条件。常用方法如下表所示:

image.png

编程实现集合查询

调用Table的getScanner(Scan scan)方法,可以查询表集合的数据,需要传入的参数为Scan类,在Scan类里面,可以指定全部的表数据,也可以指定某行键值区间的数据。

类Scan用于格式化要查询数据集合的数据,通过此对象设定集合查询条件。它常用的方法如下表所示:

image.png