0
我已經實現了基於我的邏輯的自定義分區,並且我能夠正確地獲取文件。但是由於條件,一些reducer的數據量非常大並導致延遲減速階段。如何在自定義分區程序Hadoop中設置每個reducer的輸出文件號
所以有什麼辦法可以在一個reducer輸出文件中創建很多小文件。
這裏是我的自定義partioner
public class MyPartioner extends Partitioner<Text, IntWritable> {
public int getPartition(Text key, IntWritable value, int setNumRedTask) {
String str = key.toString();
if (str.contains("Japan|2014")) {
return 0;
} else if (str.contains("Japan|2013")) {
return 1;
} else if (str.contains("Japan|2012")) {
return 2;
} else if (str.contains("Japan|2011")) {
return 3;
} else
return 4;
}
第一種情況有一個像20 GB的數據非常龐大的數量,但最後將有12萬桶。
是的,我可以使用MultiOutput,但它會創建更多的文件,因爲我從HBase有200個區域讀取記錄,因此它會創建200個輸出文件。但在我的情況下,我需要一個日本輸出文件?2014 。 – SUDARSHAN