Hbase的javaAPI实现建表、增、删、查等操作

1.建一个maven项目:(在idea中不需要,只需要建一个java项目->再右键项目->add framework support->找到maven勾上)

2.在pom.xml导入:

         <dependency>
            <groupId>org.apache.hbase</groupId>
            <artifactId>hbase-client</artifactId>
            <version>2.0.0</version>
        </dependency>

3.然后就是代码实现:(这里的方法在运行的时候要开启Hbase集群服务

package com.zhiyou100.hbasedemo;

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.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Test;

import java.io.IOException;

/**
* @Description: hbase的javaAPI
* @Param:
* @return:
* @Author: hyc
* @Date: 2019-02-20
*/

public class HbaseDemo1 {
    /**
    * @Description: createTable():创建表的方法
    * @Param: 0
    * @return: 0
    */

    @Test
    public void createTable() throws IOException {
        Configuration conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum", "master:2181,slaver1:2181,slaver2:2181");
        //建立连接
        Connection conn = ConnectionFactory.createConnection(conf);
        //获取表的管理类
        Admin admin = conn.getAdmin();
        //定义表
        HTableDescriptor hTableDescriptor=new HTableDescriptor(TableName.valueOf("person"));
        //定义列簇
        HColumnDescriptor hColumnDescriptor =new HColumnDescriptor("info");
        //讲列簇定义到表中
        hTableDescriptor.addFamily(hColumnDescriptor);
        //执行建表操作
        admin.createTable(hTableDescriptor);
        admin.close();
        conn.close();


    }

    /**
    * @Description: 向Hbase中插入数据的方法
    * @Param: null
    * @return: null
    */

    @Test
    public void put(){
        Configuration conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum","master:2181,slaver1:2181,slaver2:2181");

        try {
            //建立连接
            Connection conn= ConnectionFactory.createConnection(conf);
            //获取表
            Table table=conn.getTable(TableName.valueOf("person"));
            //用行键实例化put
            Put put= new Put("rk001".getBytes());
            //指定列簇名,列名,和值
            put.addColumn("info".getBytes(),"name".getBytes(),"zhangsan".getBytes());
            table.put(put);
            table.close();
            conn.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    /**
    * @Description: get()从Hbase中读取数据的方法
    * @Param: 1
    * @return: 1
    */
    @Test
    public void get() throws IOException {
        Configuration conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum","master:2181,slaver1:2181,slaver2:2181");
        //建立连接
        Connection conn =ConnectionFactory.createConnection(conf);
        //获取表
        Table table = conn.getTable(TableName.valueOf("person"));
        //用行建实例化get
        Get get = new Get("rk001".getBytes());
        //增加列簇和列名条件
        get.addColumn("info".getBytes(),"name".getBytes());
        //执行,返回结果
        Result result = table.get(get);
        //取出结果
        String valString= Bytes.toString(result.getValue("info".getBytes(),"name".getBytes()));
        System.out.println(valString);
        //关闭连接
        table.close();
        conn.close();
    }
    /**
    * @Description: scan()查询一个表的所有信息
    * @Param: 1
    * @return: 1
    */

    @Test
    public  void scan() throws IOException {
        Configuration conf=HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum", "master:2181,slaver1:2181,slaver2:2181");

        //建立连接
        Connection conn=ConnectionFactory.createConnection(conf);

        //获取表
        Table table=conn.getTable(TableName.valueOf("person"));


        //初始化Scan实例
        Scan scan=new Scan();

        //增加过滤条件
        scan.addColumn("info".getBytes(), "name".getBytes());
        //返回结果
        ResultScanner rss=table.getScanner(scan);
        //迭代并取出结果
        for(Result rs:rss){
            String valStr=Bytes.toString(rs.getValue("info".getBytes(), "name".getBytes()));
            System.out.println(valStr);
        }


        //关闭连接
        table.close();
        conn.close();

    }

    /**
    * @Description: delete()删除表中的信息
    * @Param: 1
    * @return: 1
    */

    @Test
    public  void delete() throws IOException {
        Configuration conf=HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum", "master:2181,slaver1:2181,slaver2:2181");

        //建立连接
        Connection conn=ConnectionFactory.createConnection(conf);

        //获取表
        Table table=conn.getTable(TableName.valueOf("person"));


        // 用行键来实例化Delete实例
        Delete del = new Delete("rk0001".getBytes());
        // 执行删除
        table.delete(del);


        //关闭连接
        table.close();
        conn.close();
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值