【Hbase】hbase java api 增删改查

本文介绍了HBase的Java API,包括基本的增删改查操作,详细讲解了API类与Hbase数据模型的对应关系。

几个主要 Hbase API 类和数据模型之间的对应关系:

java类 HBase 数据模型
Admin 数据库(DataBase)
HBaseConfiguration
Table 表(Table)
HTableDescriptor 列簇(Column Family)
HColumnDescriptor
Put 列修饰符(Column Qualifier)
Get
Delete
Result
Scan
ResultScanner

基本增删除改查demo

package com.study.follow.hbase;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;

import java.io.IOException;

/**
 * @author: honey
 * @date: 2020/2/8
 */
public class HbaseDemoTest {
   
   
    static Configuration conf;
    static Connection connection;
    static Admin admin;
    public static final String ZK_CONNECT_STR="10.211.55.20:2181,10.211.55.21:2181,10.211.55.22:2181";

    static {
   
   
        conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum",ZK_CONNECT_STR);
        try {
   
   
            connection = ConnectionFactory.createConnection(conf);
            admin = connection.getAdmin();
        } catch (IOException e) {
   
   
            e.printStackTrace();
        }
    }

    /**
     * 创建表
     * @param tableName 表名
     * @param family 列簇
     * @throws IOException
     */
    private static void createTable(String tableName,String[] family) throws IOException {
   
   

        TableName table= TableName.valueOf(tableName);

        if(admin.tableExists(table)){
   
   
            System.out.println("table exists:【"+tableName+"】");
        }else {
   
   
            HTableDescriptor htableDesc = new HTableDescriptor(table);
            for (int i = 0; i < family.length; i++) {
   
   
                htableDesc.addFamily(new HColumnDescriptor(family[i]));
            }
            admin.createTable(htableDesc);
            System.out.println("create table success");
        }
    }

    /**
     * 为表添加数据(适合知道有多少列簇的固定表)
     *
     * @param tableName
     * @param rowKey
     * @param column1 第一个列簇列表
     * @param value1 第一个列的值列表
     * @param column2 第二个列簇列表
     * @param value2 第二个列的值列表
     */
    private static void addData(String tableName, String rowKey, String[] column1, String[] value1, String[] column2, String[] value2) throws IOException {
   
   

        // 设置rowkey
        Put put = new Put(Bytes.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值