如何将HBase二级索引表用作MapReduce作业并在其中输入?

时间:2019-04-23 13:18:50

标签: hadoop mapreduce hbase

我是HBase的新手,我有一个带有行键= id-YYYYMMDD的主表,一个带有行键= YYYYMMDD-id的二级索引表,以及一个在主表中带有行键的列。在不久的将来,我将拥有大约一百万个ID,并且我将需要创建一个MapReduce作业来汇总给定日期(YYYYMMDD)中的ID。

如何将辅助索引表传递给mapreduce作业,以便在主表中运行相应的“ get(rowkey)”以获取列并汇总数据?

1 个答案:

答案 0 :(得分:0)

您有2个选择:

  1. 首先,您对索引表进行扫描。扫描将具有 startRow stopRow (例如'20190401'和'20190402'),因此它将扫描连续的键空间区域并从主表中收集ID。时间复杂度将为O(M),其中M是给定批次中的多个项目。然后,使用Get通过ID从主表中请求数据。
  2. 由于您将日期作为主表键的一部分,因此您可以使用键过滤进行MapReduce扫描,该过滤将以O(N / P)运行,其中N是表和P中的总行数是集群的并行性。