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