Hbase的API使用

HBase的API使用

1、导入jar包

2、导入额外jar包

创建表

TestBase.java

package com.matrix.hbase;

import java.io.IOException;
import java.util.Random;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.junit.Before;
import org.junit.Test;

public class TestBase {

    public static Random ra = new Random();
    public static Connection conn = null;
    public static TableName table = TableName.valueOf("test".getBytes());

    @Before
    public void setup() throws IOException {
        Configuration config = HBaseConfiguration.create();
        config.set("hbase.zookeeper.quorum", "node2,node3,node5");
        conn = ConnectionFactory.createConnection(config);
    }

    @Test
    public void createTable() throws IOException {
        Admin admin = conn.getAdmin();
        // 如果表存在,则删除
        if (admin.tableExists(table)) {
            // 删除表中数据
            admin.disableTable(table);
            // 删除表
            admin.deleteTable(table);
        }
        HTableDescriptor ht = new HTableDescriptor(table);
        HColumnDescriptor hd = new HColumnDescriptor("cf1".getBytes());
        hd.setMaxVersions(5);
        hd.setBlockCacheEnabled(true);
        hd.setBlocksize(1280000);
        ht.addFamily(hd);
        admin.createTable(ht);
    }

}

查看表是否创建成功

hbase(main):024:0> list

添加数据到表中

TestHbase.java

package com.matrix.hbase;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.junit.Before;
import org.junit.Test;

public class TestHbase {

    public static Random ra = new Random();
    public static Connection conn = null;
    public static TableName table = TableName.valueOf("test".getBytes());

    @Before
    public void setup() throws IOException {
        Configuration config = HBaseConfiguration.create();
        config.set("hbase.zookeeper.quorum", "node2,node3,node5");
        conn = ConnectionFactory.createConnection(config);
    }

    @Test
    public void insert() throws IOException {
        Table ta = conn.getTable(TestHbase.table);
        List ls = new ArrayList<Put>();
        for (int i = 0; i <= 1000; i++) {
            Put put = new Put(("123_" + i).getBytes());
            put.addColumn("cf1".getBytes(), "name".getBytes(), "zs".getBytes());
            put.addColumn("cf1".getBytes(), "age".getBytes(), String.valueOf(ra.nextInt(100)).getBytes());
            ls.add(put);
        }

        ta.put(ls);
    }

}

扫描全表

hbase(main):006:0> scan 'test'

根据需求查询表中数据

TestHbase.java

package com.matrix.hbase;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.junit.Before;
import org.junit.Test;

public class TestHbase {

    public static Random ra = new Random();
    public static Connection conn = null;
    public static TableName table = TableName.valueOf("test".getBytes());

    @Before
    public void setup() throws IOException {
        Configuration config = HBaseConfiguration.create();
        config.set("hbase.zookeeper.quorum", "node2,node3,node5");
        conn = ConnectionFactory.createConnection(config);
    }

    @Test
    public void search() throws IOException {
        Table ta = conn.getTable(TestHbase.table);
        Get get = new Get("123_996".getBytes());
        get.addColumn("cf1".getBytes(), "age".getBytes());
        Result result = ta.get(get);
        Cell cell = result.getColumnLatestCell("cf1".getBytes(), "age".getBytes());
        System.out.printf(new String(cell.getValueArray(), "GBK"));
    }

}

批量查询

TestHbase.java

package com.matrix.hbase;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Table;
import org.junit.Before;
import org.junit.Test;

public class TestHbase {

    public static Random ra = new Random();
    public static Connection conn = null;
    public static TableName table = TableName.valueOf("test".getBytes());

    @Before
    public void setup() throws IOException {
        Configuration config = HBaseConfiguration.create();
        config.set("hbase.zookeeper.quorum", "node2,node3,node5");
        conn = ConnectionFactory.createConnection(config);
    }

    @Test
    public void search1() throws IOException {
        Table ta = conn.getTable(TestHbase.table);
        Scan scan = new Scan("123_996".getBytes(), "123_999".getBytes());
        scan.addColumn("cf1".getBytes(), "age".getBytes());
        ResultScanner scanner = ta.getScanner(scan);
        Iterator<Result> it = scanner.iterator();
        while (it.hasNext()) {
            Result next = it.next();
            Cell cell = next.getColumnLatestCell("cf1".getBytes(), "age".getBytes());
            System.out.println(new String(cell.getValueArray(), "utf8"));
        }
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值