我想构建一个HBase表的rowkey空间的随机样本。
说,我希望HBase中大约有1%的密钥随机分布在整个表中。这样做的最佳方式是什么?
我想我可以编写一个MapReduce作业来处理所有数据并拉出1/100的密钥......或者可能使用协处理器。
答案 0 :(得分:3)
您可以使用RandomRowFilter获取示例。
答案 1 :(得分: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');