mapreduce多檔案輸出

2021-09-11 05:47:21 字數 1064 閱讀 5985

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...