首页 > 数据库 > mysql教程 > HBase-scanAPI通过scan读取表中数据

HBase-scanAPI通过scan读取表中数据

WBOY
发布: 2016-06-07 15:58:22
原创
1190 人浏览过

直接贴代码啦 /** * * @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,Strin

直接贴代码啦

/**
	 * 
	 * @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();
		}
	      
	}
登录后复制
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板