HBase(三)之 API的使用

7 篇文章 0 订阅

1.添加依赖

新建maven项目。并添加依赖

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

image-20200926162325596

2.Hbase核心API

2.1 获取Configuration对象

Connection代表对集群的连接对象,封装了与实际服务器的低级别单独连接以及与zookeeper的连接。

Connection可以通过ConnectionFactory类实例化。

Connection的生命周期由调用者管理,使用完毕后需要执行close()以释放资源。

Connection是线程安全的,多个Table和Admin可以共用同一个Connection对象。因此一个客户端只需要实例化一个连接即可。

反之,Table和Admin不是线程安全的!因此不建议并缓存或池化这两种对象。

 public static Configuration getConf(){
     //使用HBaseConfiguration的单例方法实例化
        Configuration conf= HBaseConfiguration.create();
        conf.addResource(new Path("/opt/hbase/conf/hbase-site.xml"));
        conf.addResource(new Path("/opt/hadoop/etc/hadoop/core-site.xml"));
        return  conf;
    }

2.2 创建表

Admin为HBase的管理类,可以通过Connection.getAdmin()获取实例,且在使用完成后调用close()关闭。

Admin可用于创建,删除,列出,启用和禁用以及以其他方式修改表,以及执行其他管理操作。

package cnkgc.hb09;

import cnkgc.hb09.until.HBaseConfs;
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 java.io.IOException;


public class CreateTable {
    public static void main(String[] args){
        Admin admin= HBaseConfs.getAdmin();
        HTableDescriptor htd=new HTableDescriptor(TableName.valueOf(args[0]));
        for (int i = 0; i < args.length; i++) {
            HColumnDescriptor family=new HColumnDescriptor(args[i]);
            htd.addFamily(family);
        }
        try {
            admin.createTable(htd);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                admin.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }


    }
}

2.3插入数据

package cnkgc.hb09;

import cnkgc.hb09.until.HBaseConfs;
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.Put;
import org.apache.hadoop.hbase.client.Table;

import java.io.IOException;

public class insertTable {
    public static void main(String[] args) throws IOException {
        Connection conn= HBaseConfs.getConn();
        Admin admin=HBaseConfs.getAdmin();
        TableName[] tableNames = admin.listTableNames();
        for (TableName tableName : tableNames) {
            System.out.println(tableName.getNameAsString());
        }
        Table table=conn.getTable(TableName.valueOf("hello"));
        String[][] values={
                {"1","asfwf","awff","1st White House","WDC"},
                {"2","鲍sdf","asda","10th 唐宁街","London"},
                {"3","jp","asd","111th sefesg","Beijing"},
                {"4","sp","asfdwf","地下sdfesg基地","PingRing"}
        };
        for (int i = 0; i < values.length; i++) {
            Put put=new Put(values[i][0].getBytes());
            put.addColumn("name".getBytes(),"fname".getBytes(),values[i][1].getBytes());
            put.addColumn("name".getBytes(),"lname".getBytes(),values[i][2].getBytes());
            put.addColumn("addr".getBytes(),"address".getBytes(),values[i][3].getBytes());
            put.addColumn("addr".getBytes(),"city".getBytes(),values[i][4].getBytes());
            table.put(put);
        }
        admin.close();
        conn.close();
    }

}

2.4打jar包并使用

首先测试创建表,将其打为jar包

image-20200926170843762

image-20200926170927464

image-20200926170948277

将打好的jar包上传到服务器

image-20200926171024997

使用jar包

hadoop jar jar包路径 jar包main方法路径 变量值

image-20200926171428240

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值