[HADOOP] 자바를 사용하여 HBase를 어떤 세 임의 규정 검색
HADOOP자바를 사용하여 HBase를 어떤 세 임의 규정 검색
내 HBase를 표는 다음과 같다 :
hbase(main):040:0> scan 'TEST'
ROW COLUMN+CELL
4 column=data:108, timestamp=1399972960190, value=-240.0
4 column=data:112, timestamp=1399972960138, value=-160.0
4 column=data:12, timestamp=1399972922979, value=2
4 column=data:120, timestamp=1399972960124, value=-152.0
4 column=data:144, timestamp=1399972960171, value=-240.0
4 column=data:148, timestamp=1399972960152, value=-240.0
4 column=data:16, timestamp=1399972909606, value=9
4 column=data:8, timestamp=1399972917978, value=6
모든 4S는 행 ID와 108,112,12 어디에 ... 규정이다. 나는이 테이블 TEST에서 무작위로 세 개의 한정자를 가져 싶다.
나는 모든 규정이 아닌 임의의 세 가지 규정을 가져올 수 있습니다. 나는 이것을 달성 할 수있는 자바에있는 쉘 명령 또는 API가 있습니까?
해결법
-
==============================
1.그냥 것에 대해 경우 처음 세 행은 3으로 설정 LIMIT로 스캔 쉘 명령을 사용합니다 :
그냥 것에 대해 경우 처음 세 행은 3으로 설정 LIMIT로 스캔 쉘 명령을 사용합니다 :
hbase(main):001:0> scan 'demo', {LIMIT => 3}
당신이 자바 API를 사용하여 작업을 수행하고자하는 경우, 세 번째 반복 후 중단 ResultScanner을 통해 루프를 설정합니다. 간단하고 쉬운.
public static void main(String[] args) throws IOException { Configuration conf = HBaseConfiguration.create(); HTable table = new HTable(conf, "demo"); Scan s = new Scan(); ResultScanner rs = table.getScanner(s); int check = 0; for(Result r : rs){ if(++check > 3) break; for (KeyValue kv : r.raw()){ System.out.println("Qualifier : " + Bytes.toString(kv.getQualifier())); } } rs.close(); table.close(); } }
당신이 3 개 임의의 행을 취득하고자하는 경우에, 위의 접근 방식 RandomRowFilter를 사용합니다.
HTH
from https://stackoverflow.com/questions/23627847/retrieve-any-three-random-qualifier-in-hbase-using-java by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 우리는 어떻게지도 함수는 맵리 듀스 프로그램에서 호출 횟수를 계산합니까? (0) | 2019.10.14 |
---|---|
[HADOOP] 클라우 데라 매니저 API를 통해 다시 시작 JobTracker에 (0) | 2019.10.14 |
[HADOOP] 하둡 HBase를 의사 모드 - 잠시 후 연결이 끊어 RegionServer (0) | 2019.10.14 |
[HADOOP] 하둡 : java.lang.Exception가 : java.lang.RuntimeException가 : 구성 개체 오류 (0) | 2019.10.14 |
[HADOOP] 설정 및 분산 캐시에 접근 문제 (0) | 2019.10.14 |