2012-12-05 2 views
3

HBase 테이블의 행 키 공간을 무작위로 샘플로 만들고 싶습니다.HBase 테이블 키 공간 샘플링

말하자면 HBase의 키 중 약 1 %가 무작위로 테이블에 분산되어 있습니다. 이 일을하는 가장 좋은 방법은 무엇입니까?

나는 모든 데이터를 처리하고 1/100의 키를 가져온 MapReduce 작업을 작성하거나 아마도 보조 프로세서를 사용한다고 가정합니다.

답변

3

RandomRowFilter을 사용하여 샘플을 얻을 수 있습니다.

+2

키만 고려되므로 'KeyOnlyFilter'도 적용 할 수 있습니다. –

0

나는 돼지에서이 일을 끝냈지 만, 어떤 이유인지 그것은 지독하게 천천히 발생했습니다. 필요한 데이터가있어 더 이상 가지 않았지만 알렉산더의 대답을 시도해야합니다.

data = LOAD 'hbase://MARS1' 
    USING org.apache.pig.backend.hadoop.hbase.HBaseStorage(
    'A:*', '-loadKey true') 
    AS (id:bytearray, A_map:map[]); 

justkeys = FOREACH data GENERATE id; 

-- rough estimate of number of keys in hbase table 
smp = SAMPLE justkeys 0.000001; 

STORE smp INTO 'key_sample' USING PigStorage('\t');