我正试图在MapReduce表中的数据上编写一个链式的HBase作业,并且需要在这个概念上提供一些帮助。我不希望人们通过伪代码来提供代码,基于HBase的Java将是很好的选择。
总之,我想做的是,
MapReduce作业1:从两个没有公共行键的表中读取数据,并在还原器中从它们中创建一个摘要。还原器的输出是一个Java对象,它包含已序列化为字节码的摘要。我将此对象存储在HBase中的临时表中。
MapReduce工作2:这就是我遇到问题的地方。现在我需要读取这个摘要对象,以便在每个映射器中都可用,这样当我从第三个(不同)表读取数据时,我可以使用这个摘要对象对从第三个表读取的数据执行更多的计算。
我读到了有关分布式缓存的内容,并试图实现它,但这似乎行不通。如果需要的话,我可以以编辑的形式提供更多的细节,因为我现在不想用不相关的细节来垃圾邮件这个问题。
发布于 2014-07-26 02:40:54
嗯,这听起来很愚蠢,但是如果我们有一个非常小的表来查询,我们可能可以使用HBase Java (甚至在MapReduce作业中)读取值,然后将它们存储在静态变量中。这样,每个Mapper只需读取一次这些值,就不会有太多的开销。
https://stackoverflow.com/questions/24542838
复制相似问题