3

我想构建 HBase 表的行键空间的随机样本。

比如说,我希望 HBase 中大约 1% 的键随机分布在整个表中。这样做的最佳方法是什么?

我想我可以编写一个 MapReduce 作业来处理所有数据并提取 1/100 的键......或者也许使用协处理器。

4

2 回答 2

3

您可以使用RandomRowFilter来获取样本。

于 2012-12-05T17:47:31.987 回答
0

我最终在 Pig 中这样做了,但无论出于何种原因,它都非常缓慢。我得到了我需要的数据,所以我没有走得更远,但我可能应该尝试亚历山大的回答。

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');
于 2012-12-07T03:53:46.857 回答