用java查询HBase中某表的一批数据

java代码如下:

package db.query;
import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
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.Filter;
import org.apache.hadoop.hbase.filter.PrefixFilter;
import org.apache.hadoop.hbase.util.Bytes;


public class HBaseQuery {
    public static void main(String[] args) {
        Configuration conf = HBaseConfiguration.create();
            conf = HBaseConfiguration.create();
            conf.set("hbase.zookeeper.quorum", "192.168.1.154");
            conf.set("hbase.zookeeper.property.clientPort", "2181");
            conf.set("hbase.master", "192.168.1.154:6000");
            String tableName = "car_table";
            HTable table;
        try {
            table = new HTable(conf, tableName);
            //设置查询条件
            //使用前缀过滤器
            Filter filter = new PrefixFilter(Bytes.toBytes("144860945858310137-"));
            Scan scan = new Scan();
            scan.setFilter(filter);
//            scan.setStartRow(Bytes.toBytes("144860945858310137-0000000000000"));
//            scan.setStopRow(Bytes.toBytes("144860945858310137-9999999999999"));
            scan.addFamily(Bytes.toBytes("lte"));
            scan.addColumn(Bytes.toBytes("lte"), Bytes.toBytes("cid"));
            scan.addColumn(Bytes.toBytes("lte"), Bytes.toBytes("time"));
            scan.addColumn(Bytes.toBytes("lte"), Bytes.toBytes("pci"));
            scan.addColumn(Bytes.toBytes("lte"), Bytes.toBytes("st"));
            scan.addColumn(Bytes.toBytes("lte"), Bytes.toBytes("ed"));
            scan.addColumn(Bytes.toBytes("lte"), Bytes.toBytes("ta"));
            scan.addColumn(Bytes.toBytes("lte"), Bytes.toBytes("lat"));
            scan.addColumn(Bytes.toBytes("lte"), Bytes.toBytes("lng"));
            ResultScanner results = table.getScanner(scan);
            for(Result result: results){
                String rowkey =  Bytes.toString(result.getRow());
                String cid = Bytes.toString(result.getValue(Bytes.toBytes("lte"), Bytes.toBytes("cid")));
                String time = Bytes.toString(result.getValue(Bytes.toBytes("lte"), Bytes.toBytes("time")));                
                String pci = Bytes.toString(result.getValue(Bytes.toBytes("lte"), Bytes.toBytes("pci")));
                String st = Bytes.toString(result.getValue(Bytes.toBytes("lte"), Bytes.toBytes("st")));    
                String ed = Bytes.toString(result.getValue(Bytes.toBytes("lte"), Bytes.toBytes("ed")));    
                String ta = Bytes.toString(result.getValue(Bytes.toBytes("lte"), Bytes.toBytes("ta")));
                String lat = Bytes.toString(result.getValue(Bytes.toBytes("lte"), Bytes.toBytes("lat")));
                String lng = Bytes.toString(result.getValue(Bytes.toBytes("lte"), Bytes.toBytes("lng")));                    
                System.out.println("rowkey : "+rowkey+" cid : "+cid+", time: "+time+", pci: "+pci+", st: "+st+", ed: "+ed+", ta: "+ta+", lat: "+lat+", lon: "+lng);
            }
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

所需jar包如下:

posted @ 2015-12-08 20:18  ~风轻云淡~  阅读(7310)  评论(0编辑  收藏  举报