HBase Mapreduce输出到hdfs& HBase的

时间:2012-03-14 16:30:31

标签: mapreduce hbase hdfs

我有一个mapreduce程序,它首先扫描一个HBase表。

我想要一些reducer输出转到hdfs并将一些reducer输出写入hbase表。可以将reducer配置为输出到两个不同的位置/格式吗?

3 个答案:

答案 0 :(得分:3)

可以将reducer配置为使用MulitpleOutputs class来输出多个文件。该类顶部的文档提供了写入多个文件的明确示例。但是,由于没有内置Outputformat来写入HBase,您可以考虑将第二个流写入HDFS上的特定位置,然后使用另一个作业将其插入HBase。

答案 1 :(得分:1)

如果您不想编写太多代码,只需在mapper或reducer的setup方法中打开一个Table,然后在您的hbase表中执行put语句。另一方面,编写您的作业,使输出文件是一个hdfs文件。这样你就可以写入hbase和hdfs。

更详细的说,当你执行context.write()时,你会写入hdfs文件,另一方面,当你执行put时,table.put会发生。

另外,不要忘记在cleanup()方法中关闭表和其他任何内容。唯一的背景是,如果让我们说1000个映射器,你的表连接将被打开1000次,但在任何给定点,只有你的映射器的最大数量真正运行,所以这可能是50,这取决于你的设置。至少对我有用!

答案 2 :(得分:1)