我们使用的是HBase批量加载技术,如:http://blog.cloudera.com/blog/2013/09/how-to-use-hbase-bulk-loading-and-why/ (即:直接使用HFileOutputFormat创建HFiles )中解释的那样。
我们必须使用此选项将遗留系统中的所有数据预先填充到HBase集群中。
由于HBase不支持辅助表(或索引),所以我们在应用程序级别上维护辅助表(或索引)。
现在的问题是,我们如何使用大容量加载技术来创建不同表的HFiles (主表和辅助表/索引)。有没有多个HFileOutputFormat(比如HFileMultiOutputFormat)?
我知道,我们可以创建多个乔布斯,并分别管理每一项工作。成本来自对这么多数据的“解读”(多于少数TB)。我想找到一种能读一遍写多遍的方法。链接乔布斯先生没有帮助,因为所有的地图任务都需要相同的数据,链接限制了第二个地图任务,以获得第一个地图任务的输出。
发布于 2014-06-04 21:09:44
首先是非常有效的要求。
实现的第一步是了解和理解HFileOutputFormat:HFileOutputFormat的代码。
您感兴趣的部分是它使用列族创建的目录结构。您将希望使用表->列族-> HFile创建目录结构
您可以使用多个输出来编写diff表数据。
https://stackoverflow.com/questions/24032871
复制相似问题