HBase テーブルの行キー スペースのランダム サンプルを作成したいと考えています。
たとえば、HBase のキーの約 1% をテーブル全体にランダムに分散させたいとします。これを行う最善の方法は何ですか?
すべてのデータを処理し、キーの 1/100 を取得する MapReduce ジョブを作成できると思います... またはコプロセッサを使用することもできます。
RandomRowFilterを使用してサンプルを取得できます。
私は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');