我有第一掃描的HBase的表映射縮減程序。HBase的MapReduce的輸出到HDFS&HBASE
我想要一些reducer輸出到hdfs和一些reducer輸出寫入到hbase表。 Reducer可以配置爲輸出到兩個不同的位置/格式嗎?
我有第一掃描的HBase的表映射縮減程序。HBase的MapReduce的輸出到HDFS&HBASE
我想要一些reducer輸出到hdfs和一些reducer輸出寫入到hbase表。 Reducer可以配置爲輸出到兩個不同的位置/格式嗎?
甲減速器可被配置爲使用MulitpleOutputs
class使用多個文件來輸出。該類頂部的文檔爲寫入多個文件提供了一個明確的例子。但是,由於在寫入HBase時沒有內置Outputformat,因此可以考慮將第二個流寫入HDFS上的特定位置,然後使用另一個作業將其插入到HBase中。
如果你不想寫太多的代碼,只需在您的映射的或減速的設置方法打開一個表,做一個PUT語句到您的HBase的表。另一方面,編寫你的作業,使輸出文件是一個hdfs文件。這樣你就可以寫入hbase和hdfs。
更精細,當你做一個context.write(),你會寫的HDFS文件,並在另一方面,當你做一個投放table.put可能發生。
此外,不要忘記關閉表和cleanup()方法中的其他內容。唯一的背景是,如果有1000個映射器,你的表連接將被打開1000次,但是在任何給定的點上,只有最大映射器數量真正運行,所以根據你的設置,這可能是50。至少適合我!