java scan hbase_hbase+java实例,Scan查询所有、get根据rowkey查询一行或一列数据

hbase+java实例,Scan查询所有、get根据rowkey查询一行或一列数据

import java.io.IOException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.KeyValue;

import org.apache.hadoop.hbase.client.Get;

import org.apache.hadoop.hbase.client.HTable;

import org.apache.hadoop.hbase.client.HTablePool;

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.filter.CompareFilter.CompareOp;

import org.apache.hadoop.hbase.filter.Filter;

import org.apache.hadoop.hbase.filter.FilterList;

import org.apache.hadoop.hbase.filter.SingleColumnValueExcludeFilter;

import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;

import org.apache.hadoop.hbase.util.Bytes;

/***

* 从表student查询数据

* 查询所有

* 根据主键查询一行

* 根据主键和列族查询列族/某一列

*

*

* @author Administrator

*

*/

public class ShowRecord {

private static Configuration hbaseconfig = null;

static{

Configuration conf = new Configuration();

conf.set("hbase.zookeeper.quorum","*.*.*.*");

conf.set("hbase.zookeeper.property.clientPort","2181");

hbaseconfig = HBaseConfiguration.create(conf);

}

public static void main(String[] args) {

//注意字段查询区分大小写

/***

* 查询表student

*/

//查询所有

//ShowRecord.showAllRecords("student");

//根据主键rowKey查询一行数据

//ShowRecord.showOneRecordByRowKey("student", "200977100709");

//根据主键查询某行中的一列

//ShowRecord.showOneRecordByRowKey_cloumn("student", "200977100709","name");

//ShowRecord.showOneRecordByRowKey_cloumn("student", "200977100709","info:age");

}

/****

* 使用scan查询所有数据

* @param tableName

*/

public static void showAllRecords(String tableName)

{

System.out.println("start==============show All Records=============");

HTablePool pool = new HTablePool(hbaseconfig,1000);

//创建table对象

HTable table = (HTable) pool.getTable(tableName);

try {

//Scan所有数据

Scan scan = new Scan();

ResultScanner rss = table.getScanner(scan);

for(Result r:rss){

System.out.println("\n row: "+new String(r.getRow()));

for(KeyValue kv:r.raw()){

System.out.println("family=>"+new String(kv.getFamily(),"utf-8")

+" value=>"+new String(kv.getValue(),"utf-8")

+" qualifer=>"+new String(kv.getQualifier(),"utf-8")

+" timestamp=>"+kv.getTimestamp());

}

}

rss.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println("\n end==============show All Records=============");

}

/***

* 根据主键rowKey查询一行数据

* get 'student','010'

*/

public static void showOneRecordByRowKey(String tableName,String rowkey)

{

HTablePool pool = new HTablePool(hbaseconfig,1000);

HTable table = (HTable) pool.getTable(tableName);

try {

Get get = new Get(rowkey.getBytes()); //根据主键查询

Result r = table.get(get);

System.out.println("start===showOneRecordByRowKey==row: "+"\n");

System.out.println("row: "+new String(r.getRow(),"utf-8"));

for(KeyValue kv:r.raw()){

//时间戳转换成日期格式

String timestampFormat = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss").format(new Date(kv.getTimestamp()));

//System.out.println("===:"+timestampFormat+" ==timestamp: "+kv.getTimestamp());

System.out.println("\nKeyValue: "+kv);

System.out.println("key: "+kv.getKeyString());

System.out.println("family=>"+new String(kv.getFamily(),"utf-8")

+" value=>"+new String(kv.getValue(),"utf-8")

+" qualifer=>"+new String(kv.getQualifier(),"utf-8")

+" timestamp=>"+timestampFormat);

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println("end===========showOneRecordByRowKey");

}

/**

* 根据rowkey,一行中的某一列簇查询一条数据

* get 'student','010','info'

* student sid是010的info列簇(info:age,info:birthday)

*

* get 'student','010','info:age'

* student sid是010的info:age列,quafilier是age

*/

//public static void showOneRecordByRowKey_cloumn(String tableName,String rowkey,String column,String quafilier)

public static void showOneRecordByRowKey_cloumn(String tableName,String rowkey,String column)

{

System.out.println("start===根据主键查询某列簇showOneRecordByRowKey_cloumn");

HTablePool pool = new HTablePool(hbaseconfig,1000);

HTable table = (HTable) pool.getTable(tableName);

try {

Get get = new Get(rowkey.getBytes());

get.addFamily(column.getBytes()); //根据主键查询某列簇

//get.addColumn(Bytes.toBytes(column),Bytes.toBytes(quafilier)); 根据主键查询某列簇中的quafilier列

Result r = table.get(get);

for(KeyValue kv:r.raw()){

System.out.println("KeyValue---"+kv);

System.out.println("row=>"+new String(kv.getRow()));

System.out.println("family=>"+new String(kv.getFamily(),"utf-8")+": "+new String(kv.getValue(),"utf-8"));

System.out.println("qualifier=>"+new String(kv.getQualifier())+"\n");

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

System.out.println("end===========showOneRecordByRowKey_cloumn");

}

//(1)时间戳到时间的转换.单一的时间戳无法给出直观的解释。

public String GetTimeByStamp(String timestamp)

{

long datatime= Long.parseLong(timestamp);

Date date=new Date(datatime);

SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");

String timeresult=format.format(date);

System.out.println("Time : "+timeresult);

return timeresult;

}

//(2)时间到时间戳的转换。注意时间是字符串格式。字符串与时间的相互转换,此不赘述。

public String GetStampByTime(String time)

{

String Stamp="";

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date;

try

{

date=sdf.parse(time);

Stamp=date.getTime()+"000";

System.out.println(Stamp);

}catch(Exception e){e.printStackTrace();}

return Stamp;

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值