hbase对Java的简单操作

1.简单命令

对表的操作:

create--创建表

list--查看table表的名称,类似show tables;

descript--查看表的主体结构

scan--查看表的实体内容

disable/enable--表的可用性

drop--删除表(需要先可用性为disable)

对内容的操作:

put--添加内容

append--追加内容

get--获取内容

delete--删除内容

2.java API的应用

复制代码
import java.io.IOException;
import java.util.List;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
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.Result;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Before;
import org.junit.Test;

public class test {
//通用类
    static Configuration conf;
    static Connection cont;
    static Admin admin;
    
    //建立连接
/**
 *     
 */
    @Before
    public void init() {
                // 取得一个数据库连接的配置参数对象
        conf=HBaseConfiguration.create();
                // 设置连接参数:HBase数据库所在的主机IP
        conf.set("hbase.zookeeper.quorum", "192.168.110.101");
                // 设置连接参数:HBase数据库使用的端口
        conf.set("hbase.zookeeper.clientPort", "2181");
        try {
    // 取得一个数据库连接对象   
cont=ConnectionFactory.createConnection(conf);     // 取得一个数据库元数据操作对象 admin=cont.getAdmin(); } catch (IOException e) { e.printStackTrace(); } if(null!=cont) { System.out.println("hello hbase"); } } //查询数据 /** * * @throws IOException */ @Test public void testGetdeom() throws IOException { //根据表名,得到表内的字段 byte[] tn_bytes="customer".getBytes(); //获取里面的value,并重新以表的形式储存 TableName tn=TableName.valueOf(tn_bytes); //根据行键获取bytes,并赋值为get类型,以表的形式连接 Get gt=new Get("Laochu".getBytes()); Table tt=cont.getTable(tn); //从形成的表中获取行键为result类型 Result rt=tt.get(gt); //将获取内容以cell泛型存储 List<Cell> cell=rt.listCells(); //循环输出里面内容 for(Cell cloums:cell) { byte[] family=CellUtil.cloneFamily(cloums);//用cellutil编码转译,克隆得到 byte[] qualifier=CellUtil.cloneQualifier(cloums); byte[] value=CellUtil.cloneValue(cloums); long timetaple=cloums.getTimestamp(); System.out.println(" 列族:"+Bytes.toString(family) +" 列名:"+Bytes.toString(qualifier) +" 值:"+Bytes.toString(value) +" 时间戳:"+timetaple); } }
原文地址:https://www.cnblogs.com/xiatian21/p/14201554.html