首页 > 代码库 > 根据主键直接获取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数据表的内容
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。