首页 > 代码库 > 根据主键直接获取Hbase数据表的内容

根据主键直接获取Hbase数据表的内容

网络上找的,很实用:

/**     *      * @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();        }               }

 

根据主键直接获取Hbase数据表的内容