HBase-scan API 通过scan读取表中数据
直接贴代码啦
- /**
- *
- * @param zkIp
- * @param zkPort
- * @param tablename
- * @param startRow 传null扫全表
- * @param stopRow 已~结尾
- * @throws Exception
- */
- public static void scanTable(String zkIp,String zkPort,String tablename,String startRow,String stopRow) throws Exception {
- HTablePool pool;
- Configuration config = HBaseConfiguration.create();
- config.set(“hbase.zookeeper.quorum”,zkIp);//
- config.set(“hbase.zookeeper.property.clientPort”, zkPort);
- pool = new HTablePool(config, 2);
- HTableInterface hbTable = null;
- try {
- hbTable = pool.getTable(tablename); // 表名
- ResultScanner rs = null;
- Scan scan = new Scan();
- // scan.addColumn(Bytes.toBytes(“cf1”),Bytes.toBytes(“qual1”));扫某一列
- if (startRow != null) { // 设置扫描的范围
- scan.setStartRow(Bytes.toBytes(startRow));
- }
- if (stopRow != null) {
- scan.setStopRow(Bytes.toBytes(stopRow));
- }
- rs = hbTable.getScanner(scan);
- hbTable.close();
- for (Result r : rs) {// 按行去遍历
- for (KeyValue kv : r.raw()) {// 遍历每一行的各列
- StringBuffer sb = new StringBuffer()
- .append(Bytes.toString(kv.getRow())).append(“\t”)
- .append(Bytes.toString(kv.getFamily()))
- .append(“\t”)
- .append(Bytes.toString(kv.getQualifier()))
- .append(“\t”).append(Bytes.toString(kv.getValue()));
- System.out.println(sb.toString());
- // kv.getRow() key
- // kv.getFamily() cf1
- // kv.getQualifier() 列名
- // kv.getValue() value
- }
- }
- } catch (Exception e) {
- System.out.println(e.getMessage());
- }finally{
- pool.close();
- }
- }