1、reducer函式中設定多檔案輸出屬性mos
private multipleoutputsmos;
2、setup()方法中建立物件
mos = new multipleoutputs(context);
3、reduce()方法中對每個類別的檔案寫入,三個引數分別是輸出的key,value,以及類別命名。單檔案輸出時檔案命名格式是「part-r-00000」,多檔案命名則根據設定的引數命名"modelsum-r-00000"
mos.write(writekey, nullwritable.get(), "modelsum");
4、cleanup()方法中關閉mos
mos.close();
public
static
class
summarydayreduce
extends
reducer
@override
protected
void
reduce
(text key, iterable
values, reducer
.context context)
throws ioexception, interruptedexception if(
"2".
equals
(type))if
("3"
.equals
(type))if
("4"
.equals
(type))if
("5"
.equals
(type))}
@override
protected
void
cleanup
(reducer
.context context)
throws ioexception, interruptedexception
}
定製mapreduce輸出
這裡以redis資料庫為例。這裡的例子是,我想統計日誌檔案中的某天各個小時的訪問量,日誌格式為 1 2014 02 1004 52 34127.0.0.1 1 job.setoutputformatclass fileoutputformat.class 現在我們想要將任務計算結果輸出到資料庫 re...
mapreduce 多路輸出
streaming支援多路輸出 suffixmultipletextoutputformat 如下示例 hadoop streaming input home mr data test tab output home mr output tab test out19 outputformatorg....
MapReduce輸出格式
針對前面介紹的輸入格式,mapreduce也有相應的輸出格式。預設情況下只有乙個 reduce,輸出只有乙個檔案,預設檔名為 part r 00000,輸出檔案的個數與 reduce 的個數一致。如果有兩個reduce,輸出結果就有兩個檔案,第乙個為part r 00000,第二個為part r 0...