HBase批量加载到多个表中

时间:2014-06-04 08:47:28

标签: hbase bulk-load

我们正在使用HBase批量加载技术,如下所述: http://blog.cloudera.com/blog/2013/09/how-to-use-hbase-bulk-loading-and-why/ (即:使用HFileOutputFormat直接创建HFile)

我们必须使用此选项来预先填充HBase集群,其中包含我们在旧系统中已有的所有数据。

由于HBase不支持辅助表(或索引),因此我们在应用程序级别维护辅助表(或索引)。

现在的问题是我们如何使用批量加载技术来创建不同表的HFile (主表和辅助表/索引)。是否存在多个HFileOutputFormat(如HFileMultiOutputFormat)?

据我所知,我们可以创建多个MR作业并分别运行每个作业。成本来自于阅读'如此多的数据(超过几TB)。我想找到一种可以读取一次和多次写入的方法。链接MR作业没有帮助,因为所有Map任务都需要相同的数据,并且链接限制第二个地图任务以获得第一个地图任务的输出。

类似的问题已经被问到herehere。但他们没有回答,因此再次尝试。

1 个答案:

答案 0 :(得分:0)

首先非常有效的要求。

实施的第一步是通过并理解HFileOutputFormat的代码:HFileOutputFormat

您感兴趣的部分是使用列族创建的目录结构。您将需要使用table - >创建目录结构。列族 - > HFILE

您可以使用多个输出来编写差异表数据。