Hbase API

原创 2016年08月29日 21:09:58

java类
HbaseAdmin
org.apache.hadoop.hbase.client.HBaseAdmin
作用:提供了一个接口来管理HBase数据库的表信息。
HbaseConfiguration
org.apache.hadoop.hbase.HBaseConfiguration
用法示例:
HBaseConfiguration hconfig = new HBaseConfiguration();
hconfig.set(“hbase.zookeeper.property.clientPort”,”2181”);

HTabel
org.apache.hadoop.hbase.client.HTabel
作用:可以用来和HBase表直接通信
HTablePool
作用:解决HTable存在的线程不安全的问题,同时通过维护固定数量的HTable数量,在程序运行期间复用这些HTabel资源对象
说明:
自动创建Htable对象,对客户端来说完全透明,避免多线程并发修改问题
htable对象之间公用configuration连接,减少网络开销
使用简单,通过htablepool的gettable方法取得一个htable对象,然后进行put、get、scan、delete等操作,最后通过htablepool的puttable方法将htable对象放回到htbalepool中

HTableDescriptor
org.apache.hadoop.hbase.HTableDescriptor
HColumnDescriptor
org.apache.hadoop.hbase.HColumnDescriptor

Put
作用:用来对单个行执行添加操作
Get
Scanner

public class HBaseConnection{
    private String rootDir;
    private String zkServer;
    private String port;
    private Configution conf;
    private HConnection hConn =null;
    private HbaseConnection (String rootDir,String zkServer,String port){
        this.rootDir=rootDir;
        this.zkServer=zkServer;
        this.port=port;
        conf=HbaseConfigution.create();
        conf.set("hbase.rootDir",rootDir);
        conf.set("hbase.zookeeper.quorum",zkServer);
        conf.set("hbase.zoopkeeper.property.clientPort",port);
        try{
                hConn=HConnectionManager.createConnection(conf);
            }catch(IOException e){
                e.printStacktrace();
            }
    }
    public void createTable(String tbaleName,List<String> cols){
        try{
                HBaseAdmin admin=new HBaseAdmin(conf);
                if(admin.tableExists(tableName)){
                    throw new Exception("table exists");                
                }else{
                    HBaseDescriptor tableDesc=new HBaseDescriptor(tableName);
                    for(String col:cols){
                        HColumnDescriptor colDesc=new HColumnDescriptor(col);
                        colDesc.setCompressionType(Algorithm.GZ);
                        tableDesc.addFamily(colDesc);
                    }
                }
                admin.createTable(tableDesc);
            }catch(Exception e){
                ……
            }       
    }
    public void saveData(String tableName,List<Put> puts){
        try{}catch{}……
        HTableInterface table=hConn.getTabel(tableName);
        table.put(puts);
        table.setAutoFlush(false);
        table.flushCommits();
    }
    public Result getData(String tableName,String rowKey){
        try{}catch{}……
        HTabelInterface table = hConn.getTabel(tableName);
        Get get = new Get(Bytes.toBytes(rowKey));
        return table.get(get);
    }
    public void format(Result result){
        String rowKey = Bytes.toString(result.getRow());
        KeyValue[] kvs=result.row();
        for(KeyValue kv:lvs){
            String family=Bytes.toString(kv.getFamily());
            String qualifier=Bytes.toString(kv.getQualifier());
            System.out.println("rowkey->"+rowKey+"family->"+family+"qualifier->"+qualifier);
        }
    }
    public void static main(String[] args){
        String rootDir="hdfs://ubuntu/hbase";
        String zkServer="ip";
        String port="2181";
        HbaseConnection  conn =new HbaseConnection(rootDir,zkServer,port);
        List<String> cols=new LinkedList<String>();
        cols.add("basicInfo");
        cols.add("moreInfo");
        conn.createTable("student",cols);   

        //保存数据
        List<Put> puts=new LinkedList<Put>();
        Put put1=new Put(Bytes.toBytes("Tom"));
        put1.add(Bytes.toBytes("basicInfo"),Bytes.toBytes("age"),Bytes.toBytes("27"));
        put1.add(Bytes.toBytes("moreInfo"),Bytes.toBytes("tel"),Bytes.toBytes("12456y"));
        conn.saveData("student",puts);
        Put put2 = new Put(Bytes.toBytes("Jim"));
        put2.add(Bytes.toBytes("basicInfo"),Bytes.toBytes("age"),Bytes.toBytes("24"));
        put2.add(Bytes.toBytes("moreInfo"),Bytes.toBytes("tel"),Bytes.toBytes("345678"));
        puts.add(put1);
        puts.add(put2);
        conn.saveData("student",puts);

        Result reslut =conn.getData("student","Tom");
        conn.format(result);
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

HBase_0.94.5_API

  • 2015-12-11 10:58
  • 6.59MB
  • 下载

hbase 0.9 api

  • 2016-02-24 16:20
  • 6.39MB
  • 下载

java api操作 hbase

/** * @(#)HbaseTest.java 1.0 2017年7月19日 * @Copyright: Copyright 2007 - 2017 MPR Tech. Co. Ltd. ...

hbase资料api

  • 2014-11-04 11:54
  • 46KB
  • 下载

HBase_0.94.5_API(2)

  • 2015-01-13 13:21
  • 6.59MB
  • 下载

Spark 下操作 HBase(1.0.0 新 API)

HBase经过七年发展,终于在今年2月底,发布了 1.0.0 版本。这个版本提供了一些让人激动的功能,并且,在不牺牲稳定性的前提下,引入了新的API。虽然 1.0.0 兼容旧版本的 API,不过还...

HBase_0.94.5_API.CHM

  • 2015-04-29 21:59
  • 6.59MB
  • 下载

HBase 0.90.3 cdh3u1 API

  • 2012-03-21 22:13
  • 2.18MB
  • 下载

Hbase的API使用

HBase的API使用1、导入jar包2、导入额外jar包创建表TestBase.javapackage com.matrix.hbase;import java.io.IOException; im...

HBase_Client_Api_Guide

  • 2012-09-26 11:37
  • 393KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)