**實現:
driver中:import org.apache.hadoop.io.text;
import org.apache.hadoop.mapreduce.partitioner;
/* * 泛型型別的是由reducer的輸入型別決定的
*/public class flowpartition extends partitionerelse if("上海".equals(addr))else }
}
**實現://指定使用自定義分割槽
job.setpartitionerclass(flowpartition.class);
//指定有多少個reducer元件(分割槽)
job.setnumreducetasks(3);
三、自定義格式輸出:
-輸出key、value之間用指定符號分隔
-指定輸出檔名稱(完全、不完全替代)
1.定義自定義輸出類,繼承fileoutputformat類,有兩個泛型,將fileoutputformat類上的泛型新增到自定義輸出類上
2.重寫getrecordwriter();返回乙個recordwriter的例項或子類物件;
3.建立recordwriter的類,重寫writer()、close()方法。
-定義輸出流,定義帶參的建構函式,用來對輸出流初始化。
-write方法用來向最終結果檔案輸出資料。
-可以在該方法中定製輸出格式
-close方法用來關閉輸出流
4.在自定義輸出類的getrecordwriter()方法中
-可以通過呼叫 super.getdefaultworkfile()方法,來獲取使用者輸入的路徑
-由該路徑指定檔案系統,以及確定輸出流
5.將該輸出流傳遞給recorwriter的子類例項。
**實現:
MapReduce如何自定義分割槽
我任然套用之前發過的乙個mapreduce例子來演示如何自定義分割槽,大家可以先去看一下我之前的例子 下面沿用上面的例子,在pom和 不變的情況下,做乙個自定義分割槽操作,目的是根據手機號前三位的不同分配資料到不同分割槽,如此我使用如下自定義分割槽類 package com.wy import or...
mapreduce自定義分組 自定義分割槽 二次排序
mapreduce中二次排序的思想中,我們常常需要對資料的分割槽分組進行自定義,以下就介紹一下自定義分割槽分組的簡單實現 1 自定義分割槽 public class demopartitionerextends partitioner return 4 要注意的是 設定了分割槽之後,reduce任務...
hadoop自定義分割槽
實現自定義分割槽比較簡單了,繼承partitioner,實現getpartition 方法就行了,分割槽是按照key進行的。以wordcount為例。輸入文字1 hello world hello 3.輸入文字2 hello world world 4 編寫程式,hello 和world各自為乙個分...