设为首页 加入收藏

TOP

HBase-scanAPI通过scan读取表中数据
2014-11-24 01:08:33 来源: 作者: 【 】 浏览:5
Tags:HBase-scanAPI 通过 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();
		}
	      
	}
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇linux下数据库实例开机自启动设置 下一篇使用exchange方式切换普通表到分..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: